您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python re.findall()无法正常工作

Python re.findall()无法正常工作

让我解释一下您在做什么:

regex = re.compile("(aa|bb)+")

您正在创建一个正则表达式,它将查找aabb,然后尝试查找是否还有更多aabb之后的内容,并且它将一直寻找aabb直到找不到为止。因为您希望捕获组仅返回,aa否则bb您只会得到最后一个捕获/找到的组。

但是,如果你有一个这样的字符串:aaxaabbxaa你会得到aa,bb,aa,因为你在字符串先来看看,找到aa,然后你看多了,发现只有一个x,让你拥有1组。然后找到另一个aa,然后找到一个bb,然后一个,然后x停下,然后有第二个小组bb。然后你找到另一个aa。所以你的最终结果是aa,bb,aa

我希望这能解释您的工作。和预期的一样。要获得ANY组,aa或者bb您需要删除+这是告诉正则表达式在返回匹配项之前先查找多个组。并让正则表达式返回aabb…的每个匹配项

因此您的正则表达式应为:

regex = re.compile("(aa|bb)")

干杯。

python 2022/1/1 18:39:20 有246人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶