|
1 | 1 | # Modalità greedy e lazy dei quantificatori |
2 | 2 |
|
3 | | -I quantificatori sono molto semplici a prima vista, ma in realtà possono essere complicati. |
| 3 | +I quantificatori sono molto semplici a prima vista, ma in realtà possono riverlarsi complicati. |
4 | 4 |
|
5 | 5 | Dovremmo comprendere appieno come funziona la ricerca se intendiamo cercare qualcosa di più complesso di `pattern:/\d+/`. |
6 | 6 |
|
7 | | -Prendiamo ad esempio la seguente attività. |
| 7 | +Prendiamo ad esempio la seguente esercitazione. |
8 | 8 |
|
9 | 9 | Abbiamo bisogno di rimpiazzare tutti i doppi apici `"..."` in un testo con le virgolette basse: `«...»`, che sono preferite nella tipografia di molti paesi. |
10 | 10 |
|
@@ -54,15 +54,15 @@ Questa procedura generica non ci spiega con evidenza perché l'espressione regol |
54 | 54 |
|
55 | 55 |  |
56 | 56 |
|
57 | | -3. Then the dot repeats because of the quantifier `pattern:.+`. The regular expression engine adds to the match one character after another. |
| 57 | +3. Successivamente il punto trova ulteriori riscontri per via del quantificatore `pattern:.+`. Il motore dell'espressione regolare aggiunge un carattere dopo l'altro. |
58 | 58 |
|
59 | | - ...Until when? All characters match the dot, so it only stops when it reaches the end of the string: |
| 59 | + ...Fino a quando? Tutti i caratteri corrispondono al punto, quindi si ferma solo quando raggiunge la fine della stringa: |
60 | 60 |
|
61 | 61 |  |
62 | 62 |
|
63 | | -4. Now the engine finished repeating `pattern:.+` and tries to find the next character of the pattern. It's the quote `pattern:"`. But there's a problem: the string has finished, there are no more characters! |
| 63 | +4. A questo punto il motore cessa di ripetere `pattern:.+` e prova a trovare il prossimo carattere del pattern. Si tratta del doppio apice `pattern:"`. C'è un problema però: la stringa è finita, non ci sono più caratteri! |
64 | 64 |
|
65 | | - The regular expression engine understands that it took too many `pattern:.+` and starts to *backtrack*. |
| 65 | + Il motore dell'espressione regolare capisce che ha preso troppi caratteri per `pattern:.+` e comincia a *retrocedere*. |
66 | 66 |
|
67 | 67 | In other words, it shortens the match for the quantifier by one character: |
68 | 68 |
|
|
0 commit comments