可能重复:
Non capturing group?
从python re模块文档中,我看到:
(?:...) Non-grouping version of regular parentheses.
和
(...) Matches the RE inside the parentheses.
The contents can be retrieved or matched later in the string.
有什么区别?
答案 0 :(得分:3)
不久: 非分组意味着它不会被匹配到一个组中。也就是说,你不能用\ 1来引用它。
答案 1 :(得分:1)
差异基本上是肯特所说的。
对于非常复杂的正则表达式,或者在应用于性能至关重要的大量文本时,它可能很有用。
另外,如果你在你的正则表达式中使用了很多分组,但是只有其中一些分组被引用(用于文本替换或任何原因),那么只有你真正>的那些>更简单em>需要作为捕获组,所以你可以从\ 1(或$ 1,依赖)引用到\ n,而不是跳过数字。
答案 2 :(得分:0)
非分组允许您在匹配字符串中使用一系列字符,而不会将其作为实际匹配项之一返回。例如,假设您正在搜索收据,而您只想提取商品的价格。说你的收据如下:
milk 1.25
bread 1.15
deli meat 5.25
total 7.65
你可以使用非分组的paren来排除价格相当于所有其他价格的行。