Ensembles de caractères dans les expressions régulières PHP
Les groupes de caractères \d et \w ne sont
pas très flexibles. Même une tâche aussi simple
que trouver toutes les lettres, mais pas les chiffres -
ne peut pas être résolue par eux. Pour de telles tâches,
il convient d'utiliser des crochets, représentant
une opération OU.
Les crochets remplacent un caractère,
n'importe lequel de ceux listés à l'intérieur. Par exemple,
comme ceci : #x[abc]x# - nous disons que
sur les bords doivent se trouver des lettres x, et à l'intérieur
- un caractère : soit 'a', soit 'b',
soit 'c'.
Après les crochets, on peut écrire des opérateurs
de répétition. Par exemple, comme ceci : #x[abc]+x#
- nous disons qu'à l'intérieur des x, il peut y avoir
un nombre quelconque de caractères 'a', 'b'
et 'c' - dans n'importe quelle combinaison.
On peut non seulement énumérer des caractères, mais aussi créer
des groupes de caractères, en écrivant un trait d'union entre deux caractères.
Par exemple, comme ceci : #[a-d]#
- nous obtenons tous les caractères de 'a' à
'd'.
Regardons des exemples.
Exemple
Dans cet exemple, le modèle de recherche est le suivant :
entre les x, n'importe quelle lettre de 'a'
à 'z' :
<?php
$str = 'xax xbx xcx x@x';
$res = preg_replace('#x[a-z]x#', '!', $str);
?>
En conséquence, la variable contiendra ce qui suit :
'! ! ! x@x'
Exemple
Dans cet exemple, le modèle de recherche est le suivant :
entre les x, n'importe quelle lettre de 'a'
à 'k' :
<?php
$str = 'xax xbx xmx x@x';
$res = preg_replace('#x[a-k]x#', '!', $str);
?>
En conséquence, la variable contiendra ce qui suit :
'! ! xmx x@x'
Exemple
Dans cet exemple, le modèle de recherche est le suivant :
entre les x, n'importe quelle lettre de 'A'
à 'Z' :
<?php
$str = 'xax xBx xcx x@x';
$res = preg_replace('#x[A-Z]x#', '!', $str);
?>
En conséquence, la variable contiendra ce qui suit :
'xax ! xcx x@x'
Exemple
Dans cet exemple, le modèle de recherche est le suivant :
entre les x, n'importe quel chiffre de 0 à 9 :
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[0-9]x#', '!', $str);
?>
En conséquence, la variable contiendra ce qui suit :
'xax ! ! ! x@x'
Exemple
Dans cet exemple, le modèle de recherche est le suivant :
entre les x, n'importe quel chiffre de 3 à 7 :
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[3-7]x#', '!', $str);
?>
En conséquence, la variable contiendra ce qui suit :
'xax x1x ! ! x@x'
Exemple
Dans cet exemple, le modèle de recherche est le suivant :
entre les x, n'importe quelle lettre de 'a'
à 'z' ou un chiffre de 1 à 9 :
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>
En conséquence, la variable contiendra ce qui suit :
'! ! ! ! x@x'
Exemple
Dans cet exemple, le modèle de recherche est le suivant :
entre les x, n'importe quelle lettre de 'a'
à 'z' ou une lettre de 'A' à
'Z' :
<?php
$str = 'xax xBx xcx x5x x@x';
$res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>
En conséquence, la variable contiendra ce qui suit :
'! ! ! x5x x@x'
Exemple
Dans cet exemple, le modèle de recherche est le suivant :
entre les x, n'importe quelle lettre de 'a'
à 'z' ou les chiffres 1, 2 :
<?php
$str = 'xax xbx x1x x2x x3x';
$res = preg_replace('#x[a-z12]x#', '!', $str);
?>
En conséquence, la variable contiendra ce qui suit :
'! ! ! ! x3x'
Exemple
Dans cet exemple, le modèle de recherche est le suivant :
entre les x, des lettres de 'a' à 'z'
en quantité de 1 ou plus :
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]+x#', '!', $str);
?>
En conséquence, la variable contiendra ce qui suit :
'xx ! ! ! x123x xa3x'
Exemple
Faisons en sorte que le nombre de lettres puisse être zéro :
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]*x#', '!', $str);
?>
En conséquence, la variable contiendra ce qui suit :
'! ! ! x123x xa3x'
Tâches pratiques
Soit une chaîne :
<?php
$str = 'aba aea aca aza axa';
?>
Écrivez une expression régulière qui trouvera selon le modèle
suivant : sur les bords se trouvent les lettres 'a',
et entre elles - la lettre 'b', 'e'
ou 'x'.
Soit une chaîne :
<?php
$str = 'a1a a3a a7a a9a aba';
?>
Écrivez une expression régulière qui trouvera selon le modèle
suivant : sur les bords se trouvent les lettres 'a',
et entre elles - un chiffre de 3 à 6.
Soit une chaîne :
<?php
$str = 'aba aea afa aha aga';
?>
Écrivez une expression régulière qui trouvera selon le modèle
suivant : sur les bords se trouvent les lettres 'a',
et entre elles - une lettre de a à g.
Soit une chaîne :
<?php
$str = 'aba aea afa aha aga';
?>
Écrivez une expression régulière qui trouvera selon le modèle
suivant : sur les bords se trouvent les lettres 'a',
et entre elles - une lettre de a à f et de j à z.
Soit une chaîne :
<?php
$str = 'aAa aea aEa aJa a3a';
?>
Écrivez une expression régulière qui trouvera selon le modèle
suivant : sur les bords se trouvent les lettres 'a',
et entre elles - une lettre de a à f et de A à D.
Soit une chaîne :
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Écrivez une expression régulière qui trouvera selon le modèle
suivant : sur les bords se trouvent les lettres 'a',
et entre elles - des lettres latines minuscules,
sans affecter les autres.
Soit une chaîne :
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Écrivez une expression régulière qui trouvera selon le modèle
suivant : sur les bords se trouvent les lettres 'a',
et entre elles - des lettres latines minuscules et majuscules, sans affecter les autres.
Soit une chaîne :
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Écrivez une expression régulière qui trouvera selon le modèle
suivant : sur les bords se trouvent les lettres 'a',
et entre elles - des lettres latines minuscules
et des chiffres, sans affecter les autres.