Я все еще относительно новичок в регулярном выражении. Я пытаюсь найти кратчайшую строку текста, которая соответствует определенному шаблону, но у меня возникают проблемы, если самый короткий шаблон является подстрокой большего совпадения. Например:
import re
string = "A|B|A|B|C|D|E|F|G"
my_pattern = 'a.*?b.*?c'
my_regex = re.compile(my_pattern, re.DOTALL|re.IGNORECASE)
matches = my_regex.findall(string)
for match in matches:
print match
Отпечатки:
A|B|A|B|C
но я бы хотел, чтобы он возвращался:
A|B|C
Есть ли способ сделать это без необходимости перебирать каждое соответствие, чтобы увидеть, содержит ли он подстроку, которая соответствует?