Come funziona? fare un quantificatore pigro in regex [chiuso]

1

Di recente ho esaminato la regex e ho calcolato che l'operatore ? rende * , + o ? pigro. La mia domanda è: come fa?

È che *? ad esempio sia un operatore speciale o ? abbia un effetto su * ? In altre parole, regex riconosce *? come un operatore in sé, oppure regex riconosce *? come i due operatori separati * e ? ?

Se è vero che *? viene riconosciuto come due operatori separati, in che modo ? influisce su * per renderlo pigro. Se ? significa che * è facoltativo, non dovrebbe significare che * non deve esistere affatto. In tal caso, in una dichiarazione .*? non regex solo corrispondere a lettere separate e all'intera stringa invece della stringa più corta?

Spiega, sono disperato per capire.

    
posta Uriel Katz 01.07.2013 - 10:33
fonte

1 risposta

5

Il *? è sicuramente un operatore e non il normale * con un meta-operatore di modifica. Viene comunemente chiamato simile a * solo per scopi mnemonici.

L'effetto che *? ha in contrasto con * è sottile, ma va abbastanza in profondità nel motore di espressione che deve essere trattato in un modo diverso a livello di "trasmissione" (decidere se tornare indietro o non), e ciò non può essere fatto da qualcosa applicato al risultato di un normale * . (Per molte, molte più informazioni, leggi il capitolo 4 di Gestione delle espressioni regolari .)

    
risposta data 01.07.2013 - 11:00
fonte

Leggi altre domande sui tag