让我解释一下您在做什么:
regex = re.compile("(aa|bb)+")
您正在创建一个正则表达式,它将查找
aa或
bb,然后尝试查找是否还有更多
aa或
bb之后的内容,并且它将一直寻找
aa或
bb直到找不到为止。因为您希望捕获组仅返回,
aa否则
bb您只会得到最后一个捕获/找到的组。
但是,如果你有一个这样的字符串:
aaxaabbxaa你会得到
aa,bb,aa,因为你在字符串先来看看,找到
aa,然后你看多了,发现只有一个
x,让你拥有1组。然后找到另一个
aa,然后找到一个
bb,然后一个,然后
x停下,然后有第二个小组
bb。然后你找到另一个
aa。所以你的最终结果是
aa,bb,aa
我希望这能解释您的工作。和预期的一样。要获得ANY组,
aa或者
bb您需要删除,
+这是告诉正则表达式在返回匹配项之前先查找多个组。并让正则表达式返回
aa或
bb…的每个匹配项
因此您的正则表达式应为:
regex = re.compile("(aa|bb)")
干杯。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)