匹配条件错误,字母"b"应该至少有一个使用正则表达式 Python 的 a 开头。如何纠正?



我使用 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]?)+$

^标志着行的开始,$标记了行的结束。通过这种方式,您可以强制整条线进行匹配,而不仅仅是其中的一部分。

最新更新