2012-02-10 66 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)。