Эффект, который я хочу: сбой, если x
не найден до y
.Regex match all with delimiter
import re
a = '''START aaaadkdklfje VALUE aaaadkdklfjeaaaadkdklfjeaaaadkdklfje aaaadkdklfjeaaaadkdklfjeaaaadkdklfjeaaaadkdklfjeaaaadkdklfjeaaaadkdklfje aaaadkdklfjeaaaadkdklfje aaaadkdklfje
aaaadkdklfje
aaaadkdklfje condition a
aaaadkdklfje
aaaadkdklfje
aaaadkdklfje condition b
aaaadkdklfje z
aaaadkdklfjeaaaadkdklfje aaaadkdklfjeqqqsdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfsdfsdf
condition c
???kjij
START...'''
b = re.findall(r'START condition a (VALUE).+?condition b.+?condition c(?!START)', a, re.DOTALL)
if b:
for x in b:
print x
Я хочу, чтобы захватить value
только тогда, когда condition
s в своем текстовом блоке присутствуют. Без соответствия прошлому start
.
Это единственный случай, который должен соответствовать:
start
?, value, ?, condition a, ?, condition b, ?, condition C# i want the matching to be done only in here
start
...
Не так:
start
?, value, condition a, ?
start
?, value, ?, condition b, condition c
start
вопрос неясно для меня .. –
такой же здесь, я не понимаю вопрос –
Если условия всегда находятся в одном порядке (a, b, c), или они могут иметь другой порядок (b, c, a) или (c, a, b)? –