Corso di Raku / Espressioni regolari e grammatiche / Espressioni regolari / Quantificatori

Matching goloso e frugale

Per impostazione predefinita un quantificatore è goloso: riconosce quanto più può, pur lasciando riuscire il resto dello schema. Considera il riconoscimento dal primo < a un >:

say '<a><b>' ~~ / '<' .+ '>' /; # 「<a><b>」

Il .+ ha inghiottito quanto poteva, fino all’ultimo >, quindi la corrispondenza attraversa entrambe le coppie di parentesi.

Per rendere un quantificatore frugale (detto anche pigro o non goloso), aggiungi un ? dopo di esso. Un quantificatore frugale riconosce quanto meno possibile:

say '<a><b>' ~~ / '<' .+? '>' /; # 「<a>」

Ora .+? si ferma al primo >, quindi corrisponde solo il primo pezzo fra parentesi.

Il suffisso ? funziona su qualunque quantificatore: anche *? e **? sono frugali. Le versioni golosa e frugale riconoscono gli stessi generi di testo — differiscono solo per quanto prendono quando c’è una scelta.

Pratica

Risolvi 1 quiz sul contenuto di questo argomento.

Il quantificatore di ripetizioni   |   Quiz — Quantificatori


💪 Oppure vai direttamente agli esercizi di questa sezione.