2009-06-11 23 views

回答

7

也許是一個以分隔符分隔的列表,而且你不想匹配任何終止分隔符。

^((?:[^,]+,??)+),?$ 

這將從"a,b,c,",其中作爲非懶惰變體將包括捕獲組中的逗號捕獲"a,b,c"

+0

也許這只是我使用的味道,但似乎只匹配a和b和c;沒有分隔符。這是有道理的,因爲'??'將永遠不會匹配任何東西,而且由於它很懶惰,它總是會選擇任何東西,不是? – wkf 2009-06-11 02:06:07

2

如果可選部分通常不存在,我會將其用作優化。

Foo(PartUsuallyPresent)?Bar 

Foo(PartUsuallyAbsent)??Bar 

但我definitly缺乏一個真實世界的例子了。