


Explication détaillée des expressions régulières en PHP (exemples de code)
Objectifs de cet article :
1. Définition des expressions régulières
2. Plusieurs syntaxes de base des expressions régulières
(1) Définition des expressions régulières
L'expression régulière est une formule logique qui opère sur des chaînes, qui consiste à combiner certains caractères spécifiques en une chaîne régulière
Par exemple :
<?php $p = '/abc123/'; $str = "abc123bbbb"; if (preg_match($p, $str)) { echo '该字符串符合这个规则'; } ?>
Le code ci-dessus Le '/abc123/' in est une expression régulière. Nous pouvons en voir que /abc123/ est une chaîne composée de caractères et de chiffres, mais ces caractères ont leurs propres significations particulières, comme /abc123/. La règle de cette expression régulière est que la chaîne commence par abc123. Toute chaîne qui correspond à cette règle correspondra à cette expression
(2) Plusieurs syntaxes de base des expressions régulières
1 Le modèle de correspondance régulier utilise des délimiteurs et des métacaractères. être n'importe quel caractère autre que des chiffres, des barres obliques inverses et des espaces. Délimiteurs courants tels que la barre oblique (/), le symbole de hachage (#) et le symbole de négation (~)
Par exemple :
/hello world/ La signification de l'expression Oui : La chaîne commence par hello world
#^[0-9]$# L'expression signifie : Faites correspondre les nombres 0-9
~hello~ L'expression signifie : La chaîne contient hello
Testons-le avec le code
Exemple 1,
/hello world/ L'expression signifie : La chaîne commence par hello world
<?php $p = "/hello world/"; $str = "hello world,i am a student"; if (preg_match($p, $str)) { echo '该字符串符合这个规则/hello world/<br/>'; } ?>
Le résultat en cours d'exécution est le suivant :
La chaîne est conforme à cette règle/bonjour tout le monde/
Changez la chaîne pour voir Ci-dessous, le résultat en cours d'exécution le fait ne commence pas par bonjour tout le monde
<?php $p = "/hello world/"; $str = "helloworld,i am a student"; if (preg_match($p, $str)) { echo '该字符串符合这个规则/hello world/<br/>'; } ?>
:
Vide
Exemple 2,
#^[0-9]$# La signification de l'expression est : faire correspondre les nombres 0-9
<?php $p2 = "#^[0-9]$#"; $str2 = "3"; if (preg_match($p2, $str2)) { echo '该字符串符合这个规则"#^[0-9]$#<br/>'; } ?>
Le résultat de l'exécution est :
La chaîne est conforme à cette règle "#^[0-9]$#
Changez le code, changez la chaîne en un nombre supérieur à 9 et voyez
<?php $p2 = "#^[0-9]$#"; $str2 = "30"; if (preg_match($p2, $str2)) { echo '该字符串符合这个规则"#^[0-9]$#<br/>'; }else{ echo '该字符串不符合这个规则"#^[0-9]$#<br/>'; } ?>
exécuter le résultat est :
Cette chaîne n'est pas conforme à cette règle"#^[0-9]$#
Exemple 3,
~bonjour~ La signification de l'expression est : la chaîne contient bonjour
Le code spécifique est le suivant :
<?php $p3 = "~hello~"; $str3 = "ahellobb"; if (preg_match($p3, $str3)) { echo '该字符串符合这个规则:~hello~'; }else{ echo '该字符串不符合这个规则:~hello~'; } ?>
Le résultat en cours d'exécution est :
La chaîne est conforme à cette règle : ~hello~
Maintenant, modifiez la chaîne de test pour qu'elle ne contienne pas hello
Le code spécifique est le suivant :
<?php $p3 = "~hello~"; $str3 = "hell o"; if (preg_match($p3, $str3)) { echo '该字符串符合这个规则:~hello~'; }else{ echo '该字符串不符合这个规则:~hello~'; } ?>
Le résultat d'exécution est :
Cette chaîne n'est pas conforme à cette règle : ~bonjour~
On voit que :
1, / signifie le début
2 , ^ signifie commencer par le caractère après ^
3 $ signifie se terminer par le caractère avant $
~ signifie contenir le. ce qui signifie
2. Si Si le modèle contient des délimiteurs, les délimiteurs doivent être échappés à l'aide d'une barre oblique inverse ().
Par exemple :
/https://www./ signifie que cela commence par https://www
Le spécifique. le code est le suivant :
<?php $p = "/https:\/\/www./"; $str = "https://www.baidu.com"; if (preg_match($p, $str)) { echo '该字符串符合这个规则:/https:\/\/www./'; }else{ echo '该字符串不符合这个规则:/https:\/\/www./'; }
Le résultat d'exécution est :
La chaîne est conforme à cette règle : /https://www./
Essayez de changer la chaîne. Si elle ne commence pas par https://www., regardez
<?php $p = "/https:\/\/www./"; $str = "http://www.baidu.com"; if (preg_match($p, $str)) { echo '该字符串符合这个规则:/https:\/\/www./'; }else{ echo '该字符串不符合这个规则:/https:\/\/www./'; }
Le résultat est :
Cette chaîne fonctionne. ne respectez pas cette règle : /https:/ /www./
3. Si le motif contient de nombreux caractères délimiteurs, il est recommandé d'utiliser d'autres caractères comme délimiteurs, ou vous peut utiliser preg_quote pour s'échapper.
Exemple 1,
<?php $p = "/https://www.baidu.com/a/b/index.html/"; $str = "http://www.baidu.com/a/b/index.html"; if (preg_match($p, $str)) { echo '该字符串符合这个规则:/https://www.baidu.com/a/b/index.html/'; }else{ echo '该字符串不符合这个规则:/https://www.baidu.com/a/b/index.html/'; }
Le résultat en cours d'exécution est :
Avertissement : preg_match() : modificateur inconnu '/' dans D:E-classclass-codeclassingindex.php à la ligne 7
Cette chaîne n'est pas conforme à cette règle :/https://www.baidu.com/a/b/index.html/
Vous ne pouvez donc pas écrire directement à ce moment/Soit vous échappez comme ci-dessus, soit procédez comme suit
Le code spécifique est le suivant :
<?php $p = "https://www.baidu.com/a/b/index.html"; $p = '/'.preg_quote($p, '/').'/'; $str = "https://www.baidu.com/a/b/index.html"; if (preg_match($p, $str)) { echo '该字符串符合这个规则:/https://www.baidu.com/a/b/index.html/'; }else{ echo '该字符串不符合这个规则:/https://www.baidu.com/a/b/index.html/'; } ?>
Le résultat en cours d'exécution est :
Cette chaîne est conforme à cette règle : /https://www.baidu.com/a/b/index.html/
4. utilisez-le après le délimiteur. Modificateurs de motif, les modificateurs de motif incluent : i, m, s, etc.
Résumé :
i signifie que la casse peut être ignorée
1. 🎜>2. m signifie correspondance multi-lignes
3. Si ce modificateur est défini, le métacaractère point (.) dans le motif correspond à tous les caractères, y compris les caractères de nouvelle ligne. Sans ce paramètre, les caractères de nouvelle ligne ne sont pas inclus.
Cas 1.Objectifs pratiques :
1 je veux dire que ce cas peut être ignoré
<?php $p = "/ABc/i"; $str = "abc"; if (preg_match($p, $str)) { echo '该字符串符合这个规则:/ABc/i'; }else{ echo '该字符串不符合这个规则:/ABc/i'; } ?>
Cette chaîne est conforme à cette règle : /ABc/i
Cas 2,
Objectif pratique :
1. m représente une correspondance multi-lignes
Le code spécifique est le suivant :
<?php $p = "/chinese/m"; $str = "i am a chinese people,\n you alose is a chinese people"; $math = ""; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则:/chinese/m,匹配结果为:'; print_r($math); }else{ echo '该字符串不符合这个规则:/chinese/m'; } ?>
Le résultat courant est :Ceci chaîne est conforme à cette règle : /chinois/m, le résultat correspondant est : Array ( [0] => Array ( [0] => chinois [1] => chinois ) ) <🎜 >Ce qu'il faut noter ici, c'est qu'utilisez preg_match_all sinon avec preg_match cela ne correspondra qu'à une seule ligne <🎜>
接下来我们运行下效果
<?php $p = "/chinese/m"; $str = "i am a chinese people,\n you alose is a chinese people"; $math = ""; if (preg_match($p, $str,$math)) { echo '该字符串符合这个规则:/chinese/m,匹配结果为:'; print_r($math); }else{ echo '该字符串不符合这个规则:/chinese/m'; } ?>
运行结果为:
该字符串符合这个规则:/chinese/m,匹配结果为:Array ( [0] => chinese )
其实/m在此也算多此一举,因为preg_match_all就是表示多行匹配了
<?php $p = "/chinese/"; $str = "i am a chinese people,\n you alose is a chinese people"; $math = ""; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则,匹配结果为:'; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>
运行结果其实是一样的,结果为:
该字符串符合这个规则,匹配结果为:Array ( [0] => Array ( [0] => chinese [1] => chinese ) )
只是要知道m表示多行匹配的意思
案例三、
实践目标:
1、如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。
具体代码如下:
<?php $p = "/chinese ./s"; $str = "i am a chinese \n people, you alose is a chinese good people"; $math = ""; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则,匹配结果为:'; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>
运行结果如下:
该字符串符合这个规则,匹配结果为:Array ( [0] => Array ( [0] => chinese [1] => chinese g ) )
说明第一个chinese 后面的字符是换行也匹配到了,这说明了s的意思就是.要包含换行符,接下来
我们去掉s,看下最终的结果
<?php $p = "/chinese ./"; $str = "i am a chinese \n people, you alose is a chinese good people"; $math = ""; if (preg_match_all($p, $str,$math)) { echo '该字符串符合这个规则,匹配结果为:'; print_r($math); }else{ echo '该字符串不符合这个规则'; } ?>
运行结果如下:
该字符串符合这个规则,匹配结果为:Array ( [0] => Array ( [0] => chinese g ) )
说明此刻只匹配到一个了,因为.不包含换行符,所以第一个chinese没有匹配到
总结:
本文主要讲解了
1、正则表达式的定义
2、正则表达式的几个基本语法
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Si vous êtes un développeur PHP expérimenté, vous aurez peut-être le sentiment d'y être déjà allé et de l'avoir déjà fait. Vous avez développé un nombre important d'applications, débogué des millions de lignes de code et peaufiné de nombreux scripts pour réaliser des opérations.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.
