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

Crèche sur les expressions régulières PHP

Par sujet:


^ - Début de la ligne
$ - Fin de ligne

. - Tout caractère à l'exception des traductions de ligne (sans le paramètre /.../s)
[...] - N'importe lequel des jeux de caractères ci-dessus. Dans les crochets, les autres opérateurs ne fonctionnent pas, mais vous pouvez utiliser des métacaractères. Avec un tiret, vous pouvez spécifier des jeux de caractères: du premier au dernier. Par exemple, [af] signifie n'importe quelle lettre de a, b, c, d, e, f.
[^ ...] - Aucun des jeux de caractères ci-dessus. Dans les crochets, les autres opérateurs ne fonctionnent pas, mais vous pouvez utiliser des métacaractères. Avec un tiret, vous pouvez spécifier des jeux de caractères: du premier au dernier. Par exemple, [^ 0-9] signifie tout caractère autre que 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
\ # - Le caractère suivant dans la barre oblique est # (sauf az et 0-9). Par exemple, \\ signifie \, \. signifie un symbole. (point), \ $ signifie le symbole $, et ainsi de suite.

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

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

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

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

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

\ v - tabulation verticale
\ a - appel
\ e - échapper
\ 033 - l'enregistrement octal du personnage

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

\ L - tous les caractères sont en minuscule avant \ E
\ U - dans la partie supérieure - // -
\ E - le limiteur du changement de registre
\ Q - Annule l'action en tant que métacaractère

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

\ S - on n'est pas un espace
\ d - un numéro
\ D - on n'est pas un chiffre

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

\ G est la fin de l'action m // g

(...) - Groupez les caractères en un motif et souvenez-vous
| | - Modèle précédent ou suivant (logique "OU")

* - Zéro ou plusieurs fois
+ - Une ou plusieurs fois
? - 0 ou 1 fois le masque précédent
{n} - Répétez n fois

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

? ~ N - Retour négatif.
? = - Aperçu avant.
?! - Négation de la vue vers l'avant.

je ne distingue pas entre les minuscules et les majuscules.
m - considère une chaîne multiligne.
s est une chaîne à une seule ligne.
x - syntaxe étendue (en utilisant des espaces et des commentaires)

e - après l'exécution des substitutions standard dans la chaîne remplacée l'interprète comme du code PHP et utilise le résultat pour remplacer la chaîne de recherche.
A - l'appariement de motifs ne sera réalisé que s'il correspond au début de la ligne dans laquelle la recherche est effectuée.
D - metasymbol $ dans le modèle correspond uniquement à la fin des données en cours de traitement. Sans ce modificateur, le métacaractère $ correspond également à la position avant 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, il n'y a pas de modificateur similaire.
S - si ce modificateur est utilisé, une analyse de modèle supplémentaire est effectuée. Dans le présent, cela n'a de sens que pour les modèles fixes qui ne contiennent pas de variables de référence.

Le U -modifier inverse la cupidité des quantificateurs, donc ils ne sont pas gourmands par défaut. Mais devenez avide s'il est suivi du symbole '?'. Cette possibilité n'est pas compatible avec Perl. Le modificateur U peut également être utilisé à l'intérieur du modèle, en utilisant 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 qui n'a pas de valeur spéciale, 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, la même chose que dans Perl, la barre oblique avec le caractère suivant suivi sans une valeur spéciale est traitée comme une faute de frappe. À ce jour, ce sont toutes les caractéristiques qui sont contrôlées par ce modificateur
u - inclut des fonctionnalités PCRE supplémentaires qui ne sont pas compatibles avec Perl: les modèles sont traités comme des chaînes UTF8. Le modificateur u est disponible en PHP 4.1.0 et supérieur pour les plateformes Unix, et en PHP 4.2.3 et supérieur pour les plateformes Windows.

(? # comment) est un commentaire dans le corps du template.
(?: pattern) - regroupement comme '()', mais sans backlink
(? = template) - "furtivement" en avant. Par exemple, \ w + (? = \ T) / correspond au mot suivi d'une tabulation, mais le caractère '\ t' n'est pas inclus dans le résultat.

\ NUMBER - Une référence à l'intérieur de l'expression rationnelle sur sa propre parenthèse analysée, où NUMBER est le numéro du groupe désiré (parenthèses). Cet opérateur fonctionne avec certaines restrictions sur le type du bloc référencé - cela ne fonctionne que s'il n'y a pas d'opérateurs répétés dans le crochet référencé.