Questo è un esempio della stringa che viene lavorato con:Regex (espressioni regolari), sostituire il secondo avvenimento in javascript
xxxxxx[xxxxxx][7][xxxxxx][9][xxxxxx]
Sto avendo un po 'di problemi di corrispondenza la seconda occorrenza di una partita, ho vuoi restituire le 2 parentesi quadre con un numero interno. Ho qualche regex trovare i primi backets quadrati con i numeri in una stringa:
\[+[0-9]+\]
Ciò restituisce [7], ma voglio tornare [9].
sto usando la funzione di sostituire il Javascript, il seguente espressione regolare corrisponde la seconda occorrenza (il [9]) in applicazioni testeing regex, tuttavia non viene sostituito correttamente nel Javascript funzione di sostituzione:
(?:.*?(\[+[0-9]+\])){2}
La mia domanda è come usare la regex precedente per sostituire [9] in Javasctipt o c'è un'altra regex che corrisponde alla seconda occorrenza di un numero tra parentesi quadre.
Cheers!
Perché stai usando '{3}' come quantificatore? Questo non sembra essere "ci saranno sempre tre tag prima di quello che vogliamo, e uno dopo", non dovresti basare la regex sui requisiti effettivi dichiarati dal richiedente? Personalmente, vorrei usare '/ (\ [\ d + \] (?: \ [. *? \ D. *? \]) *) (\ [\ D + \])/\ 1 [sostituzione] /' –
@ Anon Non sappiamo che 'xxx' non è un numero. Ho pensato che lo fosse, ma forse mi sbaglio. – marcog
Ho aggiunto un altro regex che sostituirà il secondo '[]'. –
marcog