2013-03-16 64 views
1

使用正則表達式:,爲何只捕獲最後一個列表項

(?:(?:(x),)*) 

來匹配,例如列表字符串:

X,X,X,X,

我只得到一個捕獲組,保存最後一個x。 我如何獲得每個x的捕獲組。

正則表達式是一種簡化。 X代表長時間正則表達式我在C++中使用正則表達式(ECMAScript〜= javascript)

回答

3

這是因爲你使用group*量詞..

在1..It組首先x,比賽再次與x,覆蓋組value..It做到這一點,直到最後一場比賽。 。

您可以改用(x,)沒有*量詞來單獨匹配的文本


注意

只有.NET支持多組值擷取使用capturecollection ..i.e將捕捉x,x,x,x,(x,)*正則表達式

+0

這迫使我要撕裂我的超長正則表達式。這對我來說只是長期的幫助! – David

相關問題