Introduction aux expressions régulières PHP /i, /s, /x,/u, /U, /A, /D, /S, etc.

零下一度
Libérer: 2023-03-14 13:00:02
original
1866 Les gens l'ont consulté

i (PCRE_CASELESS)

Si ceci est défini Les modificateurs , les lettres du motif seront insensibles à la casse .

m (PCRE_MULTILINE)

Par défaut, PCRE pense que la chaîne cible est composée de caractères d'une seule ligne(Or en fait elle Peut contenir plusieurs lignes ), "Début de ligne"Métacaractères(^)Correspond uniquement au début de la chaîne, et "Fin de ligne "Métacaractères($)Correspond uniquement à la fin de la chaîne , ou au dernier caractère de nouvelle ligne ( sauf si Dmodificateur). a le même comportement que perl. Lorsque ce modificateur est défini, "Début de ligne" et "Fin de ligne" Il correspondra à , avant ou après tout caractère de nouvelle ligne dans la chaîne cible. De plus, , correspondra également au. respectivement le début et la fin de la chaîne cible. La dernière position est C'est l'équivalent du perl. /m modificateur S'il n'y a pas de "n" caractère 🎜>, ou ^ ou $, n'apparaît pas dans le motif. La définition de ce modificateur n'a aucun effet .

Si ce modificateur est défini , le métacaractère point dans le motif correspond à tous les caractères , y compris les nouvelles lignes Sans ce modificateur , le point ne correspond pas au caractère de nouvelle ligne . Le modificateur est équivalent au modificateur /sperl 🎜>. Une classe de caractères niée telle que [^a] correspond toujours aux nouvelles lignes , ne dépend pas du paramètre de ce modificateur .

x ( PCRE_EXTENDED)

Si ce modificateur est défini , les caractères du modèle ne sont pas échappés ou les caractères d'espacement dans une classe ne sont toujours pas ignorés , et # et les caractères suivants en dehors d'une classe de caractères non échappée. Les caractères entre une nouvelle ligne sont également ignorés. Le modificateur est équivalent à perl Les modificateurs /x , dans permettent au modèle compilé de contenir des commentaires Remarque : . Ceci n'est utilisé que pour les caractères de données Les caractères d'espacement blanc ne peuvent toujours pas apparaître dans la séquence de caractères spéciaux du motif . , Par exemple, la séquence (?( introduit un sous-groupe conditionnel (Note de traduction).  : Si un caractère vide apparaît dans la séquence de caractères spéciaux définie par cette syntaxe, cela provoquera une erreur de compilation . tel que ( ?( provoquera l'erreur .).

e (PREG_REPLACE_EVAL)

Si ce modificateur Après définition de , preg_replace() après avoir effectué remplacement de la référence arrière sur la chaîne de remplacement , remplacera la chaîne par php exécution de l'évaluation du code (eval fonction Méthode ), et utilisez le résultat de l'exécution comme chaîne qui participe réellement au remplacement Citations simples<.>, Guillemets doubles, Barre oblique inversée() et NULL les caractères sont échappés par une barre oblique inverse lorsque la substitution de référence arrière est effectuée avec .

Conseil

Veuillez vous assurer Le remplacement le paramètre se compose d'une chaîne de code php valide, sinon php sera appelé par dans preg_replace() La ligne produit une erreur d'interprétation .

Remarque : Uniquement preg_replace()Utilisez ce modificateur, AutrePCRELa fonction ignore ce modificateur.

A (PCRE_ANCHORED)

Si Avec ce modificateur défini, le mode est forcé à "ancré" Le motif , signifie contraindre la correspondance afin qu'elle recherche uniquement à partir du début de la chaîne cible . Cet effet peut également être construit en utilisant les motifs appropriés , et qui est également perl Le seul moyen d'atteindre ce mode.

D (PCRE_DOLLAR_ENDONLY)

Si ce modificateur est défini , le métacaractère dollar dans le modèle correspond uniquement à la fin de la chaîne cible . 🎜>Si ce modificateur n'est pas défini , Lorsque la chaîne se termine par une nouvelle ligne , le signe dollar correspondra également au caractère de nouvelle ligne ( mais pas à toute nouvelle ligne précédente If Le modificateur ). m est défini, Ce modificateur est ignoré dans <.>perl.S

Lorsqu'un motif doit être utilisé plusieurs fois, Afin d'améliorer la vitesse de correspondance

, Cela vaut la peine de passer du temps faire une analyse supplémentaire dessus Si avec cet ensemble de modificateurs , <.>cette analyse complémentaire sera effectuée actuellement, Cette analyse d'un motif s'applique uniquement aux motifs non ancrés. correspond à ( c'est-à-dire qu'il n'y a pas de caractère de début fixe distinct ).U

(

PCRE_UNGREEDY)

Ce modificateur inverse le "Gourmand"modèle Rendre le quantificateur par défaut non gourmand, en utilisant le quantificateur suivi de ? Peut le rendre gourmand . Ceci est incompatible avec perl >Il peut également être défini à l'aide de . paramètre du modificateur en mode (?U), ou marquez-le comme non gourmand avec un point d'interrogation après le quantificateur ( tel que .*?).Remarque

 :En mode non gourmand,

ne peut généralement pas correspondre aux caractères dépassant pcre.backtrack_limit .X

(PCRE_EXTRA)

Ce modificateur active la fonctionnalité de pièce jointe de PCRE qui est incompatible avec perl . Toute barre oblique inverse dans le modèle suivie de ingen un caractère sans signification particulière entraînera une erreur. , conservent ces caractères pour assurer la compatibilité ascendante Par défaut Au cas où , en perl, barre oblique inverse suivie d'aucun Les caractères ayant une signification particulière sont considérés comme étant le texte original de ce personnage Aucune autre propriété n'est actuellement contrôlée par ce modificateur .

J (PCRE_INFO_JCHANGED)

Paramètre des options internes(?J) Modifiez l'option PCRE_DUPNAMESlocale Autoriser les sous-groupes Nom en double . (Annotation : ne peut être défini que via les options internes, externe/J Le paramètre produira une erreur.)

u ( PCRE8)

Ce modificateur ouvre une fonctionnalité supplémentaire incompatible avec perl les chaînes de motifs sont considérées comme <.>utf-8 de . Le modificateur est de unixversionphp 4.1.0 ou supérieur, version win32php 4.2.3 est disponible dès maintenant. php 4.3.5 commence à vérifier la validité du mode utf-8 Ce modificateur active des fonctionnalités supplémentaires. les fonctionnalités de PCRE incompatibles avec Perl. Les chaînes de modèle sont traitées comme UTF-8. Ce modificateur est disponible à partir de PHP 4.1.0 ou supérieur sous Unix et à partir de PHP 4.2.3 sur win32. PHP 4.3.5.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal