⊗ppPmRgChG 230 of 447 menu

Groupes de caractères dans les expressions régulières PHP

Il existe des commandes spéciales qui permettent de sélectionner directement des groupes entiers de caractères. La commande \d signifie un chiffre de 0 à 9. La commande \w désigne un chiffre, une lettre latine ou le symbole de soulignement. La commande \s désigne un espace ou un caractère d'espacement : espace, saut de ligne, tabulation. On peut inverser la signification de la commande en écrivant une lettre majuscule : par exemple, si \d est un chiffre, alors \D est un non-chiffre.

Exemple

Trouvons tous les chiffres :

<?php $str = '1 12 123'; $res = preg_replace('#\d#', '!', $str); ?>

En conséquence, la variable contiendra ce qui suit :

'! !! !!!'

Exemple

Les opérateurs de répétition considèrent les commandes de groupe comme un tout, c'est-à-dire que les parenthèses de regroupement ne sont pas nécessaires. Dans l'exemple suivant, le motif de recherche est le suivant : chiffre de 0 à 9 une ou plusieurs fois :

<?php $str = '1 12 123 abc @@@'; $res = preg_replace('#\d+#', '!', $str); ?>

En conséquence, la variable contiendra ce qui suit :

'! ! ! abc @@@'

Exemple

Dans l'exemple suivant, le motif de recherche est le suivant : n'importe quoi une ou plusieurs fois, mais pas un chiffre de 0 à 9 :

<?php $str = '123abc3@@'; $res = preg_replace('#\D+#', '!', $str); ?>

En conséquence, la variable contiendra ce qui suit :

'123!3!'

Exemple

Dans cet exemple, le motif de recherche est le suivant : caractère d'espacement une fois :

<?php $str = '1 12 123 abc @@@'; $res = preg_replace('#\s#', '!', $str); ?>

En conséquence, la variable contiendra ce qui suit :

'1!12!123!abc!@@@'

Exemple

Dans cet exemple, le motif de recherche est le suivant : caractère NON espacement une ou plusieurs fois. Toutes les sous-chaînes, séparées par des espaces, seront remplacées par '!' :

<?php $str = '1 12 123 abc @@@'; $res = preg_replace('#\S+#', '!', $str); ?>

En conséquence, la variable contiendra ce qui suit :

'! ! ! ! !'

Exemple

Dans cet exemple, le motif de recherche est le suivant : chiffre ou lettre une ou plusieurs fois. Toutes les sous-chaînes constituées de chiffres et de lettres seront remplacées par '!' :

<?php $str = '1 12 123a Abc @@@'; $res = preg_replace('#\w+#', '!', $str); ?>

En conséquence, la variable contiendra ce qui suit :

'! ! ! ! @@@'

Exemple

Dans cet exemple, le motif de recherche est le suivant : NON chiffre et NON lettre une ou plusieurs fois. Dans notre cas, cela correspond à '@@@' et à tous les espaces (car eux aussi ne sont ni des chiffres ni des lettres). Veuillez noter qu'à la fin il y a un '!' - en lui a été transformée la chaîne ' @@@' - avec un espace devant :

$str = '1 12 123 Abc @@@'; $res = preg_replace('#\W+#', '!', $str);

En conséquence, la variable contiendra ce qui suit :

'1!12!123!Abc!'

Problèmes pratiques

Soit la chaîne :

<?php $str = 'a1a a2a a3a a4a a5a aba aca'; ?>

Écrivez une expression régulière qui trouvera les chaînes dans lesquelles sur les bords se trouvent les lettres 'a', et entre elles un seul chiffre.

Soit la chaîne :

<?php $str = 'a1a a22a a333a a4444a a55555a aba aca'; ?>

Écrivez une expression régulière qui trouvera les chaînes dans lesquelles sur les bords se trouvent les lettres 'a', et entre elles n'importe quel nombre de chiffres.

Soit la chaîne :

<?php $str = 'aa a1a a22a a333a a4444a a55555a aba aca'; ?>

Écrivez une expression régulière qui trouvera les chaînes dans lesquelles sur les bords se trouvent les lettres 'a', et entre elles n'importe quel nombre de chiffres (y compris zéro chiffre, c'est-à-dire la chaîne 'aa').

Soit la chaîne :

<?php $str = 'avb a1b a2b a3b a4b a5b abb acb'; ?>

Écrivez une expression régulière qui trouvera les chaînes du type suivant : sur les bords se trouvent les lettres 'a' et 'b', et entre elles - pas un chiffre.

Soit la chaîne :

<?php $str = 'ave a#b a2b a$b a4b a5b a-b acb'; ?>

Écrivez une expression régulière qui trouvera les chaînes du type suivant : sur les bords se trouvent les lettres 'a' et 'b', et entre elles - pas une lettre et pas un chiffre.

Soit la chaîne :

<?php $str = 'ave a#a a2a a$a a4a a5a a-a aca'; ?>

Écrivez une expression régulière qui remplacera tous les espaces par '!'.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser