La commande 'ou' dans les expressions régulières JavaScript
Dans cette leçon, nous analyserons la commande
'|', qui représente une variante plus
puissante du 'ou' par rapport
à la commande [ ]. Cette commande permet
de diviser l'expression régulière en plusieurs parties.
Dans ce cas, l'élément recherché peut correspondre soit à une
partie de l'expression régulière, soit à une autre. Regardons
des exemples.
Exemple
Dans cet exemple, le modèle de recherche est : trois
lettres 'a' ou trois lettres 'b' :
let str = 'aaa bbb abb';
let res = str.replace(/a{3}|b{3}/g, '!');
En conséquence, la variable contiendra ce qui suit :
'! ! abb'
Exemple
Dans cet exemple, le modèle de recherche est : trois
lettres 'a' ou de 1 à plusieurs
lettres 'b' :
let str = 'aaa bbb bbbb bbbbb axx';
let res = str.replace(/a{3}|b+/g, '!');
En conséquence, la variable contiendra ce qui suit :
'! ! ! ! axx'
Exemple
Dans cet exemple, le modèle de recherche est : une lettre ou plus ou trois chiffres :
let str = 'a ab abc 1 12 123';
let res = str.replace(/[a-z]+|\d{3}/g, '!');
En conséquence, la variable contiendra ce qui suit :
'! ! ! 1 12 !'
Exemple
La barre verticale peut diviser l'expression régulière non pas en deux parties, mais en un nombre quelconque de parties :
let str = 'aaa bbb ccc ddd';
let res = str.replace(/a+|b+|c+/g, '!');
En conséquence, la variable contiendra ce qui suit :
'! ! ! ddd'
Exemple
Si la barre verticale se trouve à l'intérieur de parenthèses
simples, alors le 'ou' fonctionne uniquement à l'intérieur
de ces parenthèses.
Par exemple, trouvons les chaînes selon le modèle suivant :
au début se trouve soit 'a',
soit 'b' une ou plusieurs fois, puis
deux lettres 'x' :
let str = 'axx bxx bbxx exx';
let res = str.replace(/(a|b+)xx/g, '!');
En conséquence, la variable contiendra ce qui suit :
'! ! ! exx'
Problèmes pratiques
Soit une chaîne :
let str = 'aeeea aeea aea axa axxa axxxa';
Écrivez une expression régulière qui trouvera les chaînes
selon le modèle : sur les bords se trouvent les lettres 'a',
et entre elles - soit la lettre 'e' un nombre
quelconque de fois, soit la lettre 'x' un nombre
quelconque de fois.
Soit une chaîne :
let str = 'aeeea aeea aea axa axxa axxxa';
Écrivez une expression régulière qui trouvera les chaînes
selon le modèle : sur les bords se trouvent les lettres 'a',
et entre elles - soit la lettre 'e' deux fois
soit la lettre 'x' un nombre quelconque de fois.