2012-02-10 62 views
0

对不起新手问题......看起来括号在正则表达式中提供了两种不同的功能。一个用于分组,另一个用于提取字符串(例如.a(。*)z以提取'a'和'z'字符之间的字符串)。你将如何在你想要进行抽取的表达式中进行分组?正则表达式解释器不会将两组括号解释为提取?如何在正在进行抽取的正则表达式中包含分组操作?希望这是有道理的。如何在正则表达式提取中分组?

+0

任何示例都将被appriciated。 – 2012-02-10 18:01:07

回答

2

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

(?:abc|cba)(.+) 

将匹配“ABC”或“CBA”后跟1个以上的任意字符,并且只有那些任意字符将被捕获(“提取”)。

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