Opérateurs de répétition de caractères
Il arrive que nous souhaitions indiquer
qu'un caractère se répète un certain nombre
de fois. Si nous connaissons le nombre exact
de répétitions, nous pouvons simplement
l'écrire plusieurs fois - /aaaa/.
Mais que faire si nous voulons dire ceci :
répéter une ou plusieurs fois ?
Pour cela, il existe des opérateurs (quantificateurs)
de répétition : le plus + (une ou plusieurs fois),
l'astérisque * (zéro ou plusieurs fois) et
le point d'interrogation ? (zéro ou une fois).
Ces opérateurs agissent sur le caractère
qui les précède.
Examinons le fonctionnement de ces opérateurs à l'aide d'exemples.
Exemple
Trouvons toutes les sous-chaînes selon le motif lettre
'x', lettre 'a' une ou plusieurs
fois, lettre 'x' :
let str = 'xx xax xaax xaaax xbx';
let res = str.replace(/xa+x/g, '!');
En conséquence, la variable contiendra ce qui suit :
'xx ! ! ! xbx'
Exemple
Trouvons toutes les sous-chaînes selon le motif lettre
'x', lettre 'a' zéro ou plusieurs
fois, lettre 'x' :
let str = 'xx xax xaax xaaax xbx'
let res = str.replace(/xa*x/g, '!');
En conséquence, la variable contiendra ce qui suit :
'! ! ! ! xbx'
Exemple
Trouvons toutes les sous-chaînes selon le motif lettre
'x', lettre 'a' zéro ou une
fois, lettre 'x' :
let str = 'xx xax xaax xbx';
let res = str.replace(/xa?x/g, '!');
En conséquence, la variable contiendra ce qui suit :
'! ! xaax xbx'
Problèmes pratiques
Soit une chaîne :
let str = 'aa aba abba abbba abca abea';
Écrivez une expression régulière qui trouvera les chaînes
'aba', 'abba', 'abbba'
selon le motif : lettre 'a', lettre 'b'
un nombre quelconque de fois, lettre 'a'.
Soit une chaîne :
let str = 'aa aba abba abbba abca abea';
Écrivez une expression régulière qui trouvera les chaînes
'aa', 'aba', 'abba',
'abbba' selon le motif : lettre 'a',
lettre 'b' un nombre quelconque de fois (y compris
zéro fois), lettre 'a'.
Soit une chaîne :
let str = 'aa aba abba abbba abca abea';
Écrivez une expression régulière qui trouvera les chaînes
'aa', 'aba' selon le motif : lettre
'a', lettre 'b' une fois ou
zéro, lettre 'a'.
Soit une chaîne :
let str = 'aa aba abba abbba abca abea';
Écrivez une expression régulière qui trouvera les chaînes
'aa', 'aba', 'abba',
'abbba', sans capturer 'abca'
et 'abea'.