2009-06-11 14 views

risposta

7

Forse un elenco separato da delimitatore e non si desidera abbinare alcun delimitatore di terminazione.

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

che cattura "a,b,c" da "a,b,c,", dove come la variante non differita includerebbe la virgola nella cattura-gruppo.

+0

Forse è solo il sapore che sto usando, ma sembra corrispondere solo a ae b e c; nessun delimitatore Il che ha senso, perché '??' sarà sempre in grado di abbinare niente, e dal momento che è pigro, sceglierà sempre nulla, no? – wkf

+0

Aspetta che tu l'abbia cambiato, quindi quello che ho detto probabilmente non si applica più. Lo vedo comunque abbinato all'ultima virgola. – wkf

+0

Corrisponde all'ultima virgola, ma non la cattura nel gruppo. –

2

Lo userei come ottimizzazione se la parte opzionale di solito è assente.

Foo(PartUsuallyPresent)?Bar 

Foo(PartUsuallyAbsent)??Bar 

Ma io sicuramente manca un esempio reale, anche.

Problemi correlati