Mi considererei abile nel comprendere le espressioni regolari; per la prima volta, sono stato perplesso, e gli ultimi 20 minuti di googling/ricerca SO per la risposta non hanno prodotto nulla.corrispondenza regex Javascript * non * inizio riga
consideri la stringa:
var string = "Friends of mine are from France and they love to frolic."
e voglio sostituire o cattura (o fare qualcosa con) ogni occorrenza di "fr" (case insensitive).
ho potuto utilizzare, è sufficiente:
var replaced = string.replace(/fr/gi);
Tuttavia, quello che se avessi voluto ignorare la prima occorrenza di "fr"? Normalmente userei un look-look positivo (per esempio, (?<=.)fr
in php) per farlo, ma il nostro amico javascript non lo fa. Senza installare una libreria di terze parti, esiste un modo per garantire che la mia espressione NON corrisponda all'inizio della riga?
Aggiornamento: Mentre ci sono mezzi di sostituzione con l'catturato $1
, il mio particolare caso d'uso è split()
qui, e richiederebbe fissare l'array dopo il fatto se ho usato qualcosa come suggerimento @Explosion pillole string.replace(/^(fr)|fr/gi, "$1");
Quando nessun lookbehind, corrisponde in una sotto-regola e inserirlo di nuovo in: 'sostituire (/() fr/gi, '$ 1andthensomereplace'.)'. – Wrikken
@Wrikken il mio caso d'uso attuale è 'split()' - Ho bisogno di dividere su un'espressione complessa, quindi come aggiungerei di nuovo in una divisione? – brandonscript
@ r3mus quale array stai cercando? Cosa intendi per ricompilare dopo il fatto? –