Skip to content

Commit d57b833

Browse files
Apply suggestions from code review
Co-authored-by: Andrea <45577511+longo-andrea@users.noreply.github.com>
1 parent 3ac76a8 commit d57b833

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
@@ -35,14 +35,14 @@ Questo fenomeno può essere descritto così: "l'avidità è la causa di tutti i
3535
Per trovare un riscontro, l'interprete dell'espressione regolare usa il seguente algoritmo:
3636

3737
- Per ogni posizione nella stringa
38-
- Prova a trovare un riscontro del pattern in quella posizione.
38+
- Cerca un riscontro del pattern in quella posizione.
3939
- Se non c'è un riscontro, passa alla posizione successiva.
4040

4141
Questa procedura generica non ci spiega con evidenza perché l'espressione regolare fallisca, quindi approfondiamo come funziona la ricerca per il pattern `pattern:".+"`.
4242

4343
1. Il primo carattere del pattern è un doppio apice `pattern:"`.
4444

45-
L'interprete dell'espressione regolare prova a trovarlo nella posizione zero della stringa `subject:a "witch" and her "broom" is one`, ma in quel punto trova `subject:a`, pertanto non c'è immediata corrispondenza.
45+
L'interprete dell'espressione regolare lo cerca alla posizione zero della stringa `subject:a "witch" and her "broom" is one`, ma in quel punto trova `subject:a`, pertanto non c'è immediata corrispondenza.
4646

4747
Quindi procede: passa alle successive posizioni nella stringa sorgente e prova a trovare lì il primo carattere del pattern, prima fallisce nuovamente, e poi trova finalmente il doppio apice nella terza posizione:
4848

@@ -163,14 +163,14 @@ alert( "123 456".match(/\d+ \d+?/) ); // 123 4
163163
```smart header="Ottimizzazioni"
164164
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
166-
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.
166+
Ma per comprendere come funzionino le espressioni regolari e come implementarle non abbiamo bisogno di conoscere questi dettagli. Si tratta di meccanismi interni per ottimizzarne il rendimento.
167167
168168
Del resto è difficile ottimizzare le espressioni regolari complesse, pertanto la ricerca potrebbe anche funzionare esattamente come indicato.
169169
```
170170

171171
## Un approccio alternativo
172172

173-
Con le espressioni regolari, spesso c'è più di un modo di ottenere lo stesso risultato.
173+
Con le espressioni regolari, spesso abbiamo a disposizione diversi modi di ottenere lo stesso risultato.
174174

175175
Nel nostro caso potremmo trovare le stringhe tra doppi apici senza la modalità lazy, usando la regexp `pattern:"[^"]+"`:
176176

@@ -182,7 +182,7 @@ let str = 'a "witch" and her "broom" is one';
182182
alert( str.match(regexp) ); // "witch", "broom"
183183
```
184184

185-
La regexp `pattern:"[^"]+"` il risultato corretto, perché cerca un doppio apice `pattern:'"'`, seguito da uno o più caratteri che non siano doppi apici `pattern:[^"]` e successivamente un doppio apice di chiusura.
185+
La regexp `pattern:"[^"]+"` restituisce il risultato corretto, perché cerca un doppio apice `pattern:'"'`, seguito da uno o più caratteri che non siano doppi apici `pattern:[^"]` e successivamente un doppio apice di chiusura.
186186

187187
Quando l'interprete della regexp cerca `pattern:[^"]+` si arresta quando incontra il doppio apice di chiusura e termina il suo lavoro.
188188

@@ -236,7 +236,7 @@ let regexp = /<a href=".*?" class="doc">/g;
236236
alert( str.match(regexp) ); // <a href="link1" class="doc">, <a href="link2" class="doc">
237237
```
238238

239-
Ora sembra sembra funzionare, ci sono due riscontri:
239+
Ora sembra funzionare, ci sono due riscontri:
240240

241241
```html
242242
<a href="....." class="doc"> <a href="....." class="doc">

0 commit comments

Comments
 (0)