2012-02-08 9 views
5

Ho bisogno di un'espressione regolare che corrisponda alla quarta virgola dalla fine della riga, la mia fine linea in una virgola.regex per trovare 4a virgola dalla fine della riga

Per esempio, mi piacerebbe selezionare la virgola dopo il G nella riga sottostante:

A,B,C,D,E,F,G,H,I,J, 

risposta

5

Si può fare questo con un lookahead:

,(?=(?:[^,]*,){3}[^,]*$) 

vederlo lavorare on-line: Rubular

0

È possibile utilizzare un quantificatore e poi fare marcia indietro:

Si la versione di ingresso ngle-Line (senza ritorni a capo)

/.*\K,(?=(?:[^,]+,){3})/ 

linea singola versione corrispondente: (Newlines presenti)

/.*\K,(?=(?:[^,\n]+,){3})/ 

multilinea versione corrispondente:

/.*\K,(?=(?:[^,]+,){3})/s 
Problemi correlati