Operatori di ripetizione dei caratteri nelle espressioni regolari

Ci sono situazioni in cui vogliamo indicare che un carattere si ripete un numero specifico di volte. Se conosciamo il numero esatto di ripetizioni, possiamo semplicemente scriverlo più volte - /aaaa/. Ma cosa fare se vogliamo dire: ripeti una o più volte?

Per questo esistono operatori (quantificatori) di ripetizione: il più + (una o più volte), l'asterisco * (zero o più volte) e il punto interrogativo ? (zero o una volta). Questi operatori agiscono sul carattere che li precede.

Osserviamo il funzionamento di questi operatori con degli esempi.

Esempio

Troviamo tutte le sottostringhe secondo il modello lettera 'x', lettera 'a' una o più volte, lettera 'x':

javascriptlet str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');

Di conseguenza, nella variabile verrà memorizzato quanto segue:

javascript'xx ! ! ! xbx'

Esempio

Troviamo tutte le sottostringhe secondo il modello lettera 'x', lettera 'a' zero o più volte, lettera 'x':

javascriptlet str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');

Di conseguenza, nella variabile verrà memorizzato quanto segue:

javascript'! ! ! ! xbx'

Esempio

Troviamo tutte le sottostringhe secondo il modello lettera 'x', lettera 'a' zero o una volta, lettera 'x':

javascriptlet str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');

Di conseguenza, nella variabile verrà memorizzato quanto segue:

javascript'! ! xaax xbx'

Problemi pratici

Задание 1

Data la stringa:

javascriptlet str = 'aa aba abba abbba abca abea';

Scrivi un'espressione regolare che trovi le stringhe 'aba', 'abba', 'abbba' secondo il modello: lettera 'a', lettera 'b' un numero qualsiasi di volte, lettera 'a'.

Задание 2

Data la stringa:

javascriptlet str = 'aa aba abba abbba abca abea';

Scrivi un'espressione regolare che trovi le stringhe 'aa', 'aba', 'abba', 'abbba' secondo il modello: lettera 'a', lettera 'b' un numero qualsiasi di volte (incluso zero volte), lettera 'a'.

Задание 3

Data la stringa:

javascriptlet str = 'aa aba abba abbba abca abea';

Scrivi un'espressione regolare che trovi le stringhe 'aa', 'aba' secondo il modello: lettera 'a', lettera 'b' una volta o zero, lettera 'a'.

Задание 4

Data la stringa:

javascriptlet str = 'aa aba abba abbba abca abea';

Scrivi un'espressione regolare che trovi le stringhe 'aa', 'aba', 'abba', 'abbba', senza catturare 'abca' e 'abea'.