当前的regex匹配
oo于,
foo因为
oo(之前没有
"def "。
要阻止单词中的模式匹配,可以使用单词边界,
b其修复方法可能类似于
r"b(?<!bdef)([a-zA-Z0-9.]+?)("。请注意,标识符可以与匹配
[a-zA-Z_][a-zA-Z0-9_],因此您的模式可以像
re.findall(r'b(?<!bdefs)([a-zA-Z_]w*(?:.[a-zA-Z_]w*)*)(', s, re.A)请注意,
re.A或
re.ASCII只会使
wASCII,字母,数字和匹配ASCII
_。
请参阅regex演示。
细节
b
-单词边界(?<!bdefs)
-def
当前位置左侧不能有+号([a-zA-Z_]w*(?:.[a-zA-Z_]w*)*)
-捕获组1(其值将是re.findall
调用的结果):[a-zA-Z_]
-ASCII字母或_
w*
-1个以上的字符(?:
-开始与一系列…匹配的非捕获组.
-一个点[a-zA-Z_]
-ASCII字母或_
w*
-1个以上的字符
)*
-…零次或多次(
-一个(
字符



