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

时间:2012-02-10 17:47:44

标签: regex

很抱歉新手问题......似乎括号在正则表达式中提供了两个不同的功能。一个用于分组,但另一个用于提取字符串(例如,a(。*)z以提取“a”和“z”字符之间的字符串)。如何在要进行提取的表达式中进行分组?正则表达式解释器不会将两组括号都解释为提取吗?如何在正在进行提取的正则表达式中包含分组操作?希望这是有道理的。

1 个答案:

答案 0 :(得分:2)

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

(?:abc|cba)(.+)

匹配“abc”或“cba”后跟一个或多个任意字符,只捕获那些任意字符(“提取”)。

*)当我说“最重要”时,这意味着除了POSIX和GNU之外的任何东西。即.NET,Javascript,Java,Python,Ruby,Perl,PHP等。不支持的一个重要方面是XPath(和XML Schema)。