Maison > développement back-end > tutoriel php > Analyse d'un exemple d'utilisation du modificateur PHP régulier

Analyse d'un exemple d'utilisation du modificateur PHP régulier

墨辰丷
Libérer: 2023-03-28 09:46:01
original
1243 Les gens l'ont consulté

Cet article présente principalement l'utilisation des modificateurs réguliers php. Il analyse en détail les fonctions, les méthodes d'utilisation et les précautions associées des modificateurs réguliers php sous forme d'exemples. Les amis dans le besoin peuvent se référer à ce qui suit

. Les exemples de cet article ont appris à utiliser les modificateurs réguliers de PHP. 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()使用,
//      可以把匹配来的字符串当作正则表达式执行;
?>
Copier après la connexion

Modificateur :

POSIX Les expressions régulières compatibles n'ont aucun 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) :
Ignorer la casse lors de la correspondance.

m (PCRE_MULTILINE) :
Lorsque ce modificateur est défini, le début de la ligne (^) et la fin de la ligne ($) correspondront au début et à la fin de l'ensemble chaîne Correspond également après et avant le caractère de nouvelle ligne (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 utilise le résultat. pour remplacer la chaîne recherchée. 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é à être "ancré", c'est-à-dire qu'il est forcé de correspondre uniquement à partir du début du 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 doit être 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 "?"

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 correspondre lettres majuscules et minuscules M
- Traitez la chaîne comme plusieurs lignes S
- Traitez la chaîne comme une seule ligne, avec des sauts de ligne comme des caractères normaux Traitez de manière à ce que "." correspond à n'importe quel caractère X
- les espaces dans le motif sont ignorés U
- correspond à la chaîne la plus proche e
- Utiliser la chaîne remplacée comme expression Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'apprentissage de chacun.


Recommandations associées :

php

Correction régulièreExplication détaillée de l'utilisation des symboles

php

Correction régulière exemples d'utilisation du symbole explication détaillée

php

Correction régulière symbole /i, / est, /s, /isU etc.

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