Regex 如何在正则表达式提取中分组?

Regex 如何在正则表达式提取中分组?,regex,Regex,很抱歉这个新手问题…看来括号在正则表达式中提供了两个不同的函数。一个用于分组,另一个用于提取字符串(例如,a(.*)z用于提取“a”和“z”字符之间的字符串)。如何在要进行提取的表达式中进行分组?正则表达式解释器不只是将两组括号解释为抽取吗?如何在进行提取的正则表达式中包含分组操作?希望这是有意义的。取决于正则表达式的风格(语言),但在大多数重要的风格(*),(?:启动一个“非捕获组”,而)像往常一样结束它。即 (?:abc|cba)(.+) 将匹配“abc”或“cba”,后跟1个或多个任意字

很抱歉这个新手问题…看来括号在正则表达式中提供了两个不同的函数。一个用于分组,另一个用于提取字符串(例如,a(.*)z用于提取“a”和“z”字符之间的字符串)。如何在要进行提取的表达式中进行分组?正则表达式解释器不只是将两组括号解释为抽取吗?如何在进行提取的正则表达式中包含分组操作?希望这是有意义的。

取决于正则表达式的风格(语言),但在大多数重要的风格(*),
(?:
启动一个“非捕获组”,而
像往常一样结束它。即

(?:abc|cba)(.+)
将匹配“abc”或“cba”,后跟1个或多个任意字符,并且仅捕获(“提取”)这些任意字符


*)当我说“最重要的”,这意味着除了POSIX和GNU之外的任何东西。NET、Javascript、Java、Python、Ruby、Perl、PHP等。不支持它的一个重要特性是XPath(和XML模式)。

任何示例都值得推荐。