Che cosa significa utilizzare un'espressione regolare backtracking?Nelle espressioni regolari, che cos'è un riferimento al backtracking/back?
Inoltre, potresti fornire un esempio di questo?
Che cosa significa utilizzare un'espressione regolare backtracking?Nelle espressioni regolari, che cos'è un riferimento al backtracking/back?
Inoltre, potresti fornire un esempio di questo?
I riferimenti secondari e il backtracking sono due cose diverse. Il primo utilizza i risultati di un'acquisizione successiva nel codice, ad es.
(['"]).*?\1
Questo corrisponderà a una stringa singola o doppia (ignorando le fughe per il momento). Utilizza un backreference per fare riferimento al simbolo aperto (la virgoletta singola o doppia) in modo che possa corrispondere alla fine.
Backtracking, d'altra parte, è ciò che le espressioni regolari fanno naturalmente durante il processo di abbinamento quando una partita fallisce. Ad esempio, se sto corrispondenza l'espressione
.+b
contro la stringa
aaaaaabcd
allora sarà prima partita aaaaaabc
sulla .+
e confrontare b
contro il restante d
. Ciò non riesce, quindi torna indietro un po 'e corrisponde a aaaaaab
per .+
e quindi confronta l'b
finale con lo c
. Anche questo fallisce, quindi torna indietro e prova aaaaaa
per il .+
e corrisponde allo b
contro lo b
e succede.
Cool! Esempio.. – SIslam
Presupposto * backtrace * = backtracking, domanda simile: [Quale espressione regolare richiede il backtracking?] (Http://stackoverflow.com/questions/8132412/which-regular-expression-requires-backtracking) –
Ah grazie. Sì. – chrisjlee
Ci sono alcuni buoni esempi con spiegazione completa su http://www.regular-expressions.info/catastrophic.html – bkzland