Maison >développement back-end >tutoriel php >Une brève discussion sur ce que représentent respectivement les détails i, m, s, x et e dans les expressions régulières PHP

Une brève discussion sur ce que représentent respectivement les détails i, m, s, x et e dans les expressions régulières PHP

黄舟
黄舟original
2017-03-04 13:59:203362parcourir

L'éditeur ci-dessous vous présentera un cliché sur ce que représentent respectivement i, m, s, x et e dans les expressions régulières PHP. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur pour voir

I
Si ce caractère de correction est défini, les caractères du mode correspondront aux lettres minuscules en même temps.


Lorsque ce modificateur est défini, "début de ligne" et "fin de ligne" correspondront au début et à la fin de la chaîne entière. Correspond également. après et avant les caractères de nouvelle ligne.


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.


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 les classes de caractères, tous les caractères entre # en dehors de la classe de caractères non échappée et le caractère de nouvelle ligne suivant, inclus, sont également ignorés.


Si ce modificateur est défini, preg_replace() traite les références arrière normalement dans la chaîne de remplacement Replace,

? après . et * pour indiquer une correspondance non gourmande : *, et ? Les qualificatifs sont tous gourmands, car ils correspondront à autant de littéraux que possible, et seul l'ajout d'un ? après eux permettra d'obtenir une correspondance non gourmande ou minimale. .

Par exemple :

<?php
$string = "上飞机离开我<img border=&#39;0&#39; alt=&#39;&#39; src=&#39;/uploadfile/2009/0921/20090921091612567.jpg&#39; border=&#39;0&#39; />sdfsdf";

$su = preg_match("/ \<[ ]*img.*src[ ]*\=[ ]*[\"|\&#39;](.+?)[\"|\&#39;] /", $string,$match); // 匹配src=的内容
print_r($match[1]); // 输出 /uploadfile/2009/0921/20090921091612567.jpg

$su = preg_match("/ \<[ ]*img.*src[ ]*\=[ ]*[\"|\&#39;](.+)[\"|\&#39;] /", $string,$match);
print_r($match[1]); // 输出 /uploadfile/2009/0921/20090921091612567.jpg&#39; border=&#39;
?>

Exemple : (?i):

(?i) signifie modificateur interne en PHP, i signifie insensible à la casse

Les autres modificateurs incluent x, m, s, U, etc. C'est le même modificateur de motif que nous avons utilisé.

La différence est qu'il est utilisé à l'intérieur du motif. Cela ne fonctionne que dans le sous-modèle où (?i) se trouve

, tel que

ccc(a(?i))bcd 匹配 cccabcd和cccAbcd

et a(?i)bc est identique à abc plus le modificateur i. Idem car (?i) agit sur l'ensemble du modèle

Backreferences

L'ajout de parenthèses autour d'un modèle d'expression régulière ou d'une partie d'un modèle entraînera les correspondances associées à stocker Dans un tampon temporaire, chaque sous-correspondance capturée est stockée telle qu'elle est rencontrée de gauche à droite dans le modèle d'expression régulière. Les tampons dans lesquels les sous-correspondances sont stockées sont numérotés à partir de 1 et numérotés consécutivement jusqu'à un maximum de 99 sous-expressions. Chaque tampon est accessible à l'aide de « n », où n est un nombre décimal à un ou deux chiffres qui identifie un tampon particulier.

Les métacaractères non capturants '?:', '?=' ou '?!' peuvent être utilisés pour ignorer la préservation des correspondances associées.

Ce qui précède est une brève discussion de ce que représentent i, m, s, x et e dans les expressions régulières PHP. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php.cn). !


Déclaration:
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