Skip to content

Commit e7ea680

Browse files
committed
Review 9-regular-expressions\10-regexp-greedy-and-lazy\article.md
1 parent 3a0af57 commit e7ea680

File tree

1 file changed

+6
-6
lines changed
  • 9-regular-expressions/10-regexp-greedy-and-lazy

1 file changed

+6
-6
lines changed

9-regular-expressions/10-regexp-greedy-and-lazy/article.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Modalità greedy e lazy dei quantificatori
22

3-
I quantificatori sono molto semplici a prima vista, ma in realtà possono riverlarsi complicati.
3+
I quantificatori sono molto semplici a prima vista, ma in realtà possono rivelarsi complicati.
44

55
Dovremmo comprendere appieno come funziona la ricerca se intendiamo cercare qualcosa di più complesso di `pattern:/\d+/`.
66

@@ -100,7 +100,7 @@ La modalità lazy di un quantificatore è l'opposto della modalità greedy. Sign
100100

101101
Possiamo abilitarla mettendo un punto interrogativo `pattern:'?'` dopo il quantificatore, così che diventi `pattern:*?` o `pattern:+?` o ancora `pattern:??` per `pattern:'?'`.
102102

103-
Ricapitoliamo per chiarezza: di norma il punto interrogativo `pattern:?` è di per sé un quantificatore (zero o un carattere), ma se aggiunto *dopo un altro quantificatore (anche dopo se stesso)* assume un altro significato: cambia la modalità di corrispondenza da greedy a lazy.
103+
Ricapitoliamo per chiarezza: di norma il punto interrogativo `pattern:?` è di per sé un quantificatore (zero o un carattere), ma se aggiunto *dopo un altro quantificatore (anche dopo se stesso)* assume un altro significato: cambia la modalità di ricerca da greedy a lazy.
104104

105105
La regexp `pattern:/".+?"/g` soddisfa le nostre esigenze: trova `match:"witch"` e `match:"broom"`:
106106

@@ -161,7 +161,7 @@ alert( "123 456".match(/\d+ \d+?/) ); // 123 4
161161
La modalità lazy non ripete nulla se non c'è un motivo. Il pattern è finito e conclude la ricerca. La nostra corrispondenza è `match:123 4`.
162162

163163
```smart header="Ottimizzazioni"
164-
I moderni motori delle regexp possono ottimizzare internamente i loro algoritimi per essere più rapidi. Potrebbero quindi operare in modo leggermente diverso da quanto abbiamo spiegato prima.
164+
I moderni motori delle regexp possono ottimizzare internamente i loro algoritmi per essere più rapidi. Potrebbero quindi operare in modo leggermente diverso da quanto abbiamo spiegato prima.
165165
166166
Ma per comprendere come funzionino le espressioni regolari e come implementarle non abbiamo bisogno di conoscere questi dettagli. Si tratta di meccanismi interni per ottimizzare il rendimento.
167167
@@ -219,7 +219,7 @@ alert( str.match(regexp) ); // <a href="link1" class="doc">... <a href="link2" c
219219

220220
Il risultato adesso è errato per lo stesso motivo dell'esempio di prima con "witches". Il quantificatore `pattern:.*` ha preso troppi caratteri.
221221

222-
Possiamo spiegare la corrispondenza in questo modo:
222+
Possiamo rappresentare la corrispondenza in questo modo:
223223

224224
```html
225225
<a href="....................................." class="doc">
@@ -243,7 +243,7 @@ Ora sembra sembra funzionare, ci sono due riscontri:
243243
<a href="link1" class="doc">... <a href="link2" class="doc">
244244
```
245245

246-
Ma proviamo ancora su un altro testo:
246+
Ma proviamo ancora su un testo differente:
247247

248248
```js run
249249
let str = '...<a href="link1" class="wrong">... <p style="" class="doc">...';
@@ -298,4 +298,4 @@ Greedy
298298
Lazy
299299
: Abilitata dal punto interrogativo `pattern:?` dopo il quantificatore. L'interprete delle regexp prova la corrispondenza del resto del pattern prima di ogni ripetizione di un carattere quantificato.
300300

301-
Come abbiamo visto, la modalità lazy non è una "panacea" per i problemi della ricerca greedy. Un'alternativa può essere una ricerca greedy "calibrata", avvalendoci di esclusioni come nel pattern `pattern:"[^"]+"`.
301+
Come abbiamo visto, la modalità lazy non è una "panacea" per i problemi della ricerca greedy. Un'alternativa può essere una ricerca greedy "calibrata", avvalendoci delle esclusioni come nel pattern `pattern:"[^"]+"`.

0 commit comments

Comments
 (0)