Maison > Article > développement back-end > Explication détaillée des exemples d'utilisation des modificateurs réguliers php
Les exemples de cet article décrivent l'utilisation des modificateurs PHP réguliers. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
<?php //标记在整个模式之外; // 例://$mode="/\bis\b/U",其中U在外面; //修正符:i 不区分大小写的匹配; //如:"/abc/i"可以与abc或aBC或ABc等匹配; //修正符:m 将字符串视为多行,不管是那行都能匹配; // 例://模式为:$mode="/abc/m"; //要匹配的字符串为:$str="bcefg5e\nabcdfe" //注意其中\n,换行了;abc换到了下一行; //$str和$mode仍可以匹配,修正符m使得多行也可匹配; //修正符:s 将字符串视为单行,换行符作为普通字符; // 例://模式为:$mode="/pr.y/"; //要匹配字符串为:$str="pr\ny"; //两者不可匹配; . 是除了换行以外的字符可匹配; //修改下模式为:$mode="/pr.y/s"; //其中修正符s将\n视为普通字符,即不是换行; //最后两者可以匹配; //修正符:x 将模式中的空白忽略; //修正符:A 强制从目标字符串开头匹配; // 例://$mode="/abc/A"; //可以与$str="abcsdfi"匹配, //不可以与$str2="sdsdabc"匹配; //因为$str2不是以abc开头; //修正符:D 如果使用$限制结尾字符,则不允许结尾有换行; // 例://模式为:$mode="/abc$/"; //可以与最后有换行的$str="adshabc\n"匹配; //元子符$会忽略最后的换行\n; //如果模式为:$mode="/abc/D", //则不能与$str="adshabc\n"匹配, //修正符D限制其不可有换行;必需以abc结尾; //修正符:U 只匹配最近的一个字符串;不重复匹配; // 例: // 如模式为: $mode="/a.*c/"; $str="abcabbbcabbbbbc" ; preg_match($mode,$str,$content); echo $content[0]; //输出:abcabbbcabbbbbc; //如果$mode="/a.*c/";变成$mode="/a.*c/U"; // 则只匹配最近一个字符串,输出:abc; //修正符:e 配合函数preg_replace()使用, // 可以把匹配来的字符串当作正则表达式执行; ?>
Modificateur :
L'expression régulière compatible POSIX n'a pas de modificateur.
Modificateurs possibles utilisés dans les expressions régulières compatibles PERL (les espaces et les nouvelles lignes dans les modificateurs sont ignorés, d'autres caractères provoqueront des erreurs) :
i (PCRE_CASELESS) :
Ignoré lors de la correspondance entre Upper et minuscule.
m (PCRE_MULTILINE) :
Lorsque ce modificateur est défini, le début de la ligne (^) et la fin de la ligne ($) correspondent non seulement au début et à la fin de la chaîne entière, mais correspondent également la nouvelle ligne respectivement après et avant le symbole (n).
s (PCRE_DOTALL) :
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 paramètre, les caractères de nouvelle ligne ne sont pas inclus.
x (PCRE_EXTENDED) :
Si ce modificateur est défini, les caractères d'espacement dans le motif sont complètement ignorés, à l'exception de ceux qui sont échappés ou dans une classe de caractères.
e :
Si ce modificateur est défini, preg_replace() effectue le remplacement normal de la référence arrière dans la chaîne de remplacement, l'évalue comme du code PHP et remplace la recherche par sa chaîne de résultat. Seul preg_replace() utilise ce modificateur, les autres fonctions PCRE l'ignorent.
A (PCRE_ANCHORED) :
Si ce modificateur est défini, le motif est forcé d'être "ancré", c'est-à-dire que le motif est forcé de correspondre uniquement à partir du début de la chaîne cible.
D (PCRE_DOLLAR_ENDONLY) :
Si ce modificateur est défini, la fin de la ligne ($) dans le motif correspond uniquement à la fin de la chaîne cible. Sans cette option, si le dernier caractère est un caractère de nouvelle ligne, il sera également mis en correspondance. Cette option est ignorée si le modificateur m est défini.
S :
Lorsqu'un modèle sera utilisé plusieurs fois, il vaut la peine de l'analyser d'abord pour accélérer la correspondance. Si ce modificateur est défini, une analyse supplémentaire sera effectuée. Actuellement, l’analyse d’un motif n’est utile que pour les motifs non ancrés qui n’ont pas un seul caractère de départ fixe.
U (PCRE_UNGREEDY) :
Faites la correspondance par défaut de "?"
X (PCRE_EXTRA) : toute barre oblique inverse dans le modèle
suivie d'une lettre sans signification particulière entraîne une erreur, préservant ainsi cette combinaison pour une expansion future. Par défaut, une barre oblique inverse suivie d'une lettre sans signification particulière est traitée comme la lettre elle-même.
u (PCRE_UTF8) : La chaîne de modèle
est traitée comme UTF-8.
Remarque :
Modificateurs de motif
i - peut faire correspondre les lettres majuscules et minuscules
M - traiter les chaînes comme plusieurs lignes
S - Traiter la chaîne comme une seule ligne et traitez les nouvelles lignes comme des caractères ordinaires, de sorte que "." corresponde à n'importe quel caractère
X - Les blancs dans le modèle sont ignorés
U - Correspond à la chaîne la plus proche
e - Utilisez la chaîne remplacée comme expression
J'espère que cet article sera utile à tout le monde dans la programmation PHP.
Pour des exemples plus détaillés d'utilisation des modificateurs réguliers PHP et des articles connexes, veuillez faire attention au site Web PHP chinois !