我使用 python 编码以匹配以下条件 在所有字符串的字母表{a, b}上标识语言的re模式,其中每个"b"前面至少有一个"a">
import re
s = '''
a
aaaa
ab
aba
abaabaaaab
b
abb
bba
'''
regex = re.finditer(r"^([aA]+[bB]?)+", s, re.M)
for i in regex:
print(i.group())
我在多行字符串的第 7 行上的"abb"输出时得到"ab"。但这不应该发生。我不希望它在输出中。必须在正则表达式中进行哪些更改才能纠正此错误。
将$
添加到正则表达式的末尾:
^([aA]+[bB]?)+$
^
标志着行的开始,$
标记了行的结束。通过这种方式,您可以强制整条线进行匹配,而不仅仅是其中的一部分。