什么是正则括号的非分组版本

2024-04-26 00:15:47 发布

您现在位置:Python中文网/ 问答频道 /正文

Possible Duplicate:
Non capturing group?

从python re-module文档中,我看到:

(?:...)  Non-grouping version of regular parentheses.

以及

^{pr2}$

有什么区别?在


Tags: of文档reversiongroupmodulenon区别
3条回答

很快: 不分组意味着它不会匹配到一个组中。也就是说,您不能通过例如\1引用它。在

非分组允许您在匹配字符串中使用一系列字符,而不会将其作为实际匹配项之一返回。举个例子,假设你在搜索一张收据,而你只想拉取商品的价格。假设你的收据看起来像:

milk 1.25
bread 1.15
deli meat 5.25
total 7.65

您可以使用非分组paren来排除价格为total但捕获所有其他价格的行。在

区别基本上是肯特说的。在

对于非常复杂的正则表达式,或者应用于性能至关重要的大量文本时,它可能很有用。在

另外,如果您在正则表达式中使用了大量分组,但只有其中的一部分在后面被引用(出于文本替换或其他原因),那么只需要真正的组作为捕获组就更简单了,因此您可以从\1(或$1,视情况而定)到\n引用,而不是跳过数字。在

相关问题 更多 >