⊗jsSpREEP 129 of 294 menu

Riferimenti posteriori nel modello delle espressioni regolari in JavaScript

Il contenuto dei gruppi di cattura è accessibile non solo nella stringa di sostituzione, ma anche all'interno del modello dell'espressione regolare: noi possiamo mettere qualcosa in un gruppo, e poi dire direttamente nell'espressione regolare che qui deve essere presente il contenuto di quel gruppo.

Il contenuto dei gruppi di cattura è accessibile tramite i loro numeri, preceduti da una barra rovesciata. Per esempio, il primo gruppo sarà accessibile in questo modo: \1, il secondo gruppo in questo modo - \2, il terzo - \3 e così via.

Sono sicuro che tutto quanto scritto sopra sia ancora piuttosto oscuro per voi. Non è sorprendente, dato che i gruppi di cattura sono l'argomento più difficile da capire delle espressioni regolari. Analizziamo con degli esempi.

Esempio

Supponiamo di avere una stringa come questa:

let str = 'aa bb cd ef';

Troviamo tutti i punti in cui ci sono due lettere qualsiasi uguali consecutive. Per risolvere il problema, cercheremo qualsiasi lettera, la metteremo in un gruppo di cattura, e poi controlleremo se il carattere successivo è il contenuto di quel gruppo:

let res = str.replace(/([a-z])\1/g, '!');

Di conseguenza, nella variabile verrà memorizzato quanto segue:

'! ! cd ef'

Esempio

Supponiamo di avere una stringa come questa:

let str = 'asxca buzxb csgd';

Troviamo tutte le parole in cui la prima e l'ultima lettera sono uguali. Per risolvere il problema, scriveremo il seguente modello: una lettera, poi una o più lettere, e poi la stessa lettera della prima:

let res = str.replace(/([a-z])[a-z]+\1/g, '!');

Di conseguenza, nella variabile verrà memorizzato quanto segue:

'! ! csgd'

Problemi pratici

Data la stringa:

let str = 'aaa bbb ccc xyz';

Trova tutte le sottostringhe in cui ci sono tre lettere uguali consecutive.

Data la stringa:

let str = 'a aa aaa aaaa aaaaa';

Trova tutte le sottostringhe in cui ci sono due o più lettere uguali consecutive.

Data la stringa:

let str = 'aaa aaa bbb bbb ccc ddd';

Trova tutte le sottostringhe in cui ci sono due parole uguali consecutive.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta