gpt4 book ai didi

python 重新? : example

转载 作者:行者123 更新时间:2023-12-03 23:23:52 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What is a non-capturing group in regular expressions?

(18 个回答)



Reference - What does this regex mean?

(1 个回答)


8年前关闭。




我看到了一个正则表达式 (?= (?:\d{5}|[A-Z]{2}))在 python re 示例中,对 ?: 的含义感到非常困惑.

我还看到了 python 文档,有解释:
(?:...)
常规括号的非捕获版本。匹配括号内的任何正则表达式,但组匹配的子字符串在执行匹配后无法检索或稍后在模式中引用。

谁能给我一个例子,并解释它为什么有效,谢谢!

最佳答案

通常,括号会在您的正则表达式中创建一个“捕获”组:

regex = re.compile("(set|let) var = (\\w+|\\d+)")
print regex.match("set var = 12").groups()

结果
('set', '12')

稍后您可以通过对匹配结果调用 .groups() 方法来检索这些组。如您所见,括号内的任何内容都被捕获在“组”中。但是您可能并不关心所有这些群体。假设您只想查找第二组而不是第一组中的内容。您需要第一组括号才能对“get”和“set”进行分组,但您可以通过在开头放置“?:”来关闭捕获:
regex = re.compile("(?:set|let) var = (\\w+|\\d+)")
print regex.match("set var = 12").groups()

结果:
('12',)

关于 python 重新? : example,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22989241/

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