2009-06-11 16 views

cevap

7

Sınırlayıcı olarak ayrılmış bir liste olabilir ve sonlandırıcı sınırlayıcılarla eşleştirmek istemezsiniz.

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

olmayan yavaş varyant yakalama grubunda virgül gibi "a,b,c," gelen "a,b,c" yakalama olacağını.

+0

Belki de kullanıyorum sadece lezzet, ama bu sadece a ve b ve c ile eşleşiyor gibi görünüyor; sınırlayıcı yok. Hangisi mantıklı, çünkü '??' her zaman hiçbir şeyle eşleşemez ve tembel olduğu için her zaman bir şey seçmez, hayır mı? – wkf

+0

Bunu bekledim, dediğim şey muhtemelen artık geçerli değil. Yine de son virgülle eşleştiğini görüyorum. – wkf

+0

Son virgülle eşleşir, ancak grupta yakalamaz. –

2

İsteğe bağlı kısım genellikle yoksa, optimizasyon olarak kullanırdım.

Foo(PartUsuallyPresent)?Bar 

Foo(PartUsuallyAbsent)??Bar 

Ama ben kesinlikle gerçek dünyadaki örneklerden yoksun değilim.

İlgili konular