This page has been robot translated, sorry for typos if any. Original content here.

Aide-mémoire PHP sur les expressions régulières

Sur le sujet:


^ - Début de ligne
$ - fin de ligne

. - Tout caractère sauf les sauts de ligne (sans le paramètre /.../s)
[...] - N'importe lequel des jeux de caractères listés. Les autres opérateurs ne travaillent pas entre crochets, mais vous pouvez utiliser des métacaractères. À l'aide d'un trait d'union, vous pouvez spécifier des jeux de caractères: du premier au dernier. Par exemple, [af] signifie toute lettre de a, b, c, d, e, f.
[^ ...] - Aucun des jeux de caractères répertoriés. Les autres opérateurs ne travaillent pas entre crochets, mais vous pouvez utiliser des métacaractères. À l'aide d'un trait d'union, vous pouvez spécifier des jeux de caractères: du premier au dernier. Par exemple, [^ 0-9] signifie n’importe quel caractère sauf 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
\ # - Le caractère # suivant la barre oblique (sauf pour az et 0-9). Par exemple, \\ signifie le caractère \, \. signifie symbole. (point), \ $ signifie le caractère $, etc.

\ b - Début d'un mot
\ B - Fin du mot
[[: alnum:]] - caractères alphanumériques
[[: digit:]] - chiffres décimaux

[[: xdigit:]] - caractères numériques hexadécimaux
[[: alpha:]] - lettres caractères
[[: upper:]] - caractères alphabétiques majuscules
[[: lower:]] - caractères alphabétiques minuscules

[[: punct:]] - signes de ponctuation
[[: space:]] - caractères d'espacement
[[: blanc:]] - tabulation et espace
[[: print:]] - caractères imprimés

[[: cntrl:]] - caractères de contrôle
[[: graph:]] - caractères imprimés, sauf les espaces
\ xNN - NN est le code hexadécimal d'un caractère ASCII (\ x20 est un espace, \ x4A est J, \ x6A est j, etc.).

\ t - caractère de tabulation
\ n - nouvelle ligne
\ r - retour chariot
\ a - traduction de format

\ v - onglet vertical
\ a - appel
\ e - échapper
\ 033 - notation octale

\ x1A - hexadécimal
\ c - caractère de contrôle
\ l - le caractère suivant en minuscule
\ u - majuscule - // -

\ L - tous les caractères minuscules avant \ E
\ U - en haut - // -
\ E - délimiteur de changement de cas
\ Q - annuler l'action en tant que métacaractère

\ w - caractère alphanumérique ou '_'
\ W - pas - // -
\ s - un espace

\ S - un pas d'espace
\ d - un chiffre
\ D - un pas de chiffre

\ b - limite de mot
\ B n'est pas une limite de mot
\ A - début de ligne pour chaque ligne d'une ligne multiligne
\ Z - fin de ligne pour chaque ligne d'une ligne multiligne

\ G - fin d'action m // g

(...) - Regroupez les personnages dans un motif et rappelez-vous
| | | - modèle précédent ou suivant ("OU" logique)

* - zéro fois ou plus
+ - Une ou plusieurs fois
? - masque précédent 0 ou 1 fois
{n} - Répéter n fois

{n,} - Répéter n fois ou plus
{n, m} - Répéter de n à m fois
? #N - Ceci est l'opérateur "regarder en arrière". N est le nombre de caractères à afficher.

? ~ N - Refuser de regarder en arrière.
? = - Regardez devant vous.
?! - Déni de regarder en avant.

Je ne fais pas la distinction entre les lettres minuscules et majuscules.
m - lit une chaîne multiligne.
s est une chaîne simple.
x - syntaxe avancée (utilisant des espaces et des commentaires)

e - après avoir effectué des substitutions standard dans la chaîne remplacée, il l'interprète comme du code PHP et utilise le résultat pour remplacer la chaîne de recherche.
Une correspondance du motif ne sera obtenue que si elle correspond au début de la ligne dans laquelle la recherche est effectuée.
D - $ métacaractère dans le modèle correspond uniquement à la fin des données traitées. Sans ce modificateur, le métacaractère $ correspond également à la position précédant le dernier caractère, s'il s'agit d'un saut de ligne (mais ne s'applique à aucun autre saut de ligne). Ce modificateur est ignoré si le modificateur m est utilisé. En Perl, un modificateur similaire est manquant.
S - si ce modificateur est utilisé, une analyse supplémentaire du modèle est effectuée. À l'heure actuelle, cela n'a de sens que pour les modèles fixes qui ne contiennent pas de références de variables.

U - le modificateur inverse la cupidité des quantificateurs, ils ne sont donc pas gloutons par défaut. Mais ils deviennent gourmands s'ils sont suivis du symbole "?". Cette fonctionnalité n'est pas compatible avec Perl. Le modificateur U peut également être utilisé dans le modèle à l'aide de l'entrée «? U».
X - inclut des fonctionnalités PCRE supplémentaires, qui ne sont pas compatibles avec Perl: toute barre oblique inverse dans le modèle, suivie d'un caractère sans signification particulière, entraîne une erreur. Cela est dû au fait que de telles combinaisons sont réservées pour un développement ultérieur. Par défaut, comme en Perl, une barre oblique suivie d'un caractère sans signification particulière est traitée comme une faute de frappe. Aujourd'hui, toutes ces fonctionnalités sont contrôlées par ce modificateur.
u - inclut des fonctionnalités PCRE supplémentaires non compatibles avec Perl: les modèles sont traités en tant que chaînes UTF8. Le modificateur u est disponible à partir de PHP 4.1.0 et supérieur pour les plateformes Unix et de PHP 4.2.3 et versions ultérieures pour les plateformes Windows.

(? # commentaire) - un commentaire dans le corps du modèle.
(?: template) - grouper comme '()', mais sans backlink
(? = motif) - "regarder devant". Par exemple, / \ w + (? = \ T) / correspond à un mot suivi d'un onglet, mais le caractère '\ t' n'est pas inclus dans le résultat.

\ NUMBER - Un lien à l'intérieur de l'expression rationnelle avec son propre crochet analysé, où NUMBER est le numéro du groupe souhaité (parenthèses). Cette instruction fonctionne avec certaines restrictions sur le type du bloc référencé - elle ne fonctionne que s'il n'y a pas d'instructions de répétition dans le crochet référencé.