gpt4 book ai didi

python - 捕获组如何工作? (wrt python 正则表达式)

转载 作者:行者123 更新时间:2023-11-28 19:52:09 32 4
gpt4 key购买 nike

在使用正则表达式帮助解决 Python Challenge 中的问题时, 我遇到了一些让我困惑的行为。

来自 here :

(...) 匹配括号内的任何正则表达式。

'+' 导致生成的 RE 匹配前面 RE 的 1 次或多次重复。

所以这是有道理的:

>>>import re
>>>re.findall(r"(\d+)", "1111112")
['1111112']

但这不是:

>>> re.findall(r"(\d)+", "1111112")
['2']

我意识到 findall 仅在正则表达式中存在组时返回组,但为什么只返回“2”?匹配中的所有 1 发生了什么?

最佳答案

因为你只有一个捕获组,但它会反复“运行”,所以新的匹配项会重复输入到该组的“存储空间”中。换句话说,当 1 被后续 1 并最终被 2“覆盖”时,它们就丢失了。

关于python - 捕获组如何工作? (wrt python 正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/861060/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com