Maison > développement back-end > tutoriel php > Explication détaillée des métacaractères dans les expressions régulières en PHP (exemples de code)

Explication détaillée des métacaractères dans les expressions régulières en PHP (exemples de code)

易达
Libérer: 2020-05-30 17:29:38
original
227 Les gens l'ont consulté

Objectifs de cet article :

1. Comprendre la définition des métacaractères dans les expressions régulières

2. Maîtriser l'utilisation des métacaractères dans les expressions régulières de base

(1) , Comprendre la définition des métacaractères d'expression régulière

Les caractères ayant une signification particulière dans les expressions régulières sont appelés métacaractères. Les métacaractères courants sont :

, ^, $, [, ], |, (,),. ?*, +, {, }

(2) Maîtriser l'utilisation des métacaractères dans les expressions régulières de base

Résumé :

1.
2. ^ représente la position de départ de la cible (ou le début de la ligne en mode multi-lignes)
3. $ représente la position finale de la cible (ou en mode multi-lignes est la fin). de la ligne)
4. Par défaut, il correspond à n'importe quel caractère sauf le caractère de nouvelle ligne
5. [ représente le caractère de début de la définition
6, ] représente le caractère de fin de la définition
7, | branche facultative
8, (indique la balise de début d'un sous-groupe
9,) indique la balise de fin d'un sous-groupe
10, ? : comme quantificateur, indiquant 0 ou 1 correspondance.
11. * : En tant que quantificateur, cela signifie 0 ou plusieurs correspondances
12 + : En tant que quantificateur, cela signifie 1 ou plusieurs correspondances
13 { : Cela signifie la balise de début d'un quantificateur personnalisé.
14, } : indique la balise de fin des quantificateurs personnalisés

Les codes suivants sont utilisés un par un pour pratiquer chaque résumé, ce qui peut favoriser la compréhension

1 Généralement utilisé. pour s'échapper Le code spécifique du caractère

est le suivant :

<?php
$p = "/A\/B\/C/";//包含A/B/C字符串
$str = "A/B/C";
if (preg_match($p, $str,$math)) {
    echo &#39;该字符串符合这个规则:/A\/B\/C/<br/>&#39;;
    echo "匹配结果为:";
    print_r($math);
}else{
    echo &#39;该字符串不符合这个规则:/A\/B\/C/&#39;;
}
?>
Copier après la connexion

Le résultat de l'exécution est :

La chaîne est conforme à cette règle : / A/B/C/
Le résultat de la correspondance est : Array ([0] => A/B/C)

2. début de ligne en mode multi-ligne)

Le code spécifique est le suivant :

<?php
$p = "/^A/m";//以A开始
$str = "Abc \nAcc \nAdd";
if (preg_match_all($p, $str,$math)) {
    echo &#39;该字符串符合这个规则:<br/>&#39;;
    echo "匹配结果为:";
    print_r($math);
}else{
    echo &#39;该字符串不符合这个规则&#39;;
}
?>
Copier après la connexion

Le résultat d'exécution est le suivant :

La chaîne est conforme à cette règle :
Le résultat de la correspondance est : Array ( [0] => Array ( [0] => A [1] => A [2] => A ) )

3. $ représente la position finale de la cible (ou de la ligne en mode multi-ligne)

Le code spécifique est le suivant :

<?php
$p = "/A$/m";//以A结尾的字符串
$str = "nihao A\n this is a word A";
if (preg_match_all($p, $str,$math)) {
    echo &#39;该字符串符合这个规则:<br/>&#39;;
    echo "匹配结果为:";
    print_r($math);
}else{
    echo &#39;该字符串不符合这个规则&#39;;
}
?>
Copier après la connexion

Le résultat en cours d'exécution est :

La chaîne est conforme à cette règle :
Le résultat de la correspondance est : Array ( [0 ] => Array ( [0] => A [1] => A ) )


4. Par défaut, il correspond à n'importe quel caractère sauf les nouvelles lignes

Le code spécifique est le suivant :

<?php
$p = "/A.B/";//查找A(任何字符除了换行符外)B的字符串
$str = "A,B A-B A\nB";
if (preg_match_all($p, $str,$math)) {
    echo &#39;该字符串符合这个规则<br/>&#39;;
    echo "匹配结果为:";
    print_r($math);
}else{
    echo &#39;该字符串不符合这个规则&#39;;
}
?>
Copier après la connexion

Le résultat en cours d'exécution est :

La chaîne est conforme à cette règle
Le résultat de la correspondance est : Array ( [0] => Array ( [0] => A,B [1] => A-B ) )

5. [ représente le caractère de début de définition

6. ] représente le caractère de fin de définition

Le code spécifique est le suivant :

<?php
$p = "/[0-9]A/";//包含小于9的一个数字和A
$str = "0A 1A 2A SA";
if (preg_match_all($p, $str,$math)) {
    echo &#39;该字符串符合这个规则<br/>&#39;;
    echo "匹配结果为:";
    print_r($math);
}else{
    echo &#39;该字符串不符合这个规则&#39;;
}
?>
Copier après la connexion

Le courant le résultat est :

La chaîne est conforme à cette règle
Le résultat de la correspondance est : Array ( [0] => Array ( [0] => 0A [1] => 1A [2] => 2A ) )

7 | représente une branche facultative

Le code spécifique est le suivant :

<?php
$p = "/[0-9]A|[0-9]B/";//查找小于9的一个数字和A相连的字符串或者查找
                        //小于9的一个数字和B相连的字符串
$str = "0A 1A 2B 3C";
if (preg_match_all($p, $str,$math)) {
    echo &#39;该字符串符合这个规则<br/>&#39;;
    echo "匹配结果为:";
    print_r($math);
}else{
    echo &#39;该字符串不符合这个规则&#39;;
}
?>
Copier après la connexion

Le résultat en cours d'exécution est :

La chaîne est conforme à cette règle
Le résultat de la correspondance est : Array ( [0] => Array ( [0] => 0A [1] => 1A [2] => 2B ) )

8. (Représente la marque de début d'un sous-groupe

9. ) Représente la marque de début d'un sous-groupe Balise de fin

<?php
$p = "/([0-9])-([0-9])/";
$str = "1-3 2-4 3-s";
if (preg_match_all($p, $str,$math)) {
    echo &#39;该字符串符合这个规则<br/>&#39;;
    echo "匹配结果为:";
    print_r($math);
}else{
    echo &#39;该字符串不符合这个规则&#39;;
}
?>
Copier après la connexion

Le résultat d'exécution est :

La chaîne est conforme à cette règle
Le résultat de la correspondance est : Array ( [0] => Array ( [0] => ; 1-3 [1] => 2-4 ) [1] => Tableau ( [0] => 1 [1] => 2 ) [2] => ; 4 ) )

10 ? : En tant que quantificateur, cela signifie 0 ou 1 correspondance.

Le code spécifique est le suivant :

<?php
$p = "/(A[0-9])?H/";//查找H字符 因为?表示出现0或者1次
$str = "A1AH AsH BH";
if (preg_match_all($p, $str,$math)) {
    echo &#39;该字符串符合这个规则<br/>&#39;;
    echo "匹配结果为:";
    print_r($math);
}else{
    echo &#39;该字符串不符合这个规则&#39;;
}
?>
Copier après la connexion

Le résultat d'exécution est le suivant :

La chaîne est conforme à cette règle
Le résultat correspondant est : Tableau ( [0] => ; Tableau ( [0] => H [1] => H [2] => H ) [1] => Tableau ( [0] => [1] = > [2] => ; ) )

11 * : En tant que quantificateur, cela signifie 0 ou plusieurs correspondances

<?php
$p = "/(A[0-9])*H/";//查找H字符 因为*表示出现0或者多次所以和?的结果不同
$str = "A1AH A1H A2H A2A2H";
if (preg_match_all($p, $str,$math)) {
    echo &#39;该字符串符合这个规则<br/>&#39;;
    echo "匹配结果为:";
    print_r($math);
}else{
    echo &#39;该字符串不符合这个规则&#39;;
}
?>
Copier après la connexion

Le résultat de l'opération est :

Cette chaîne correspond Le résultat de correspondance de cette règle
est : Array ( [0] => Array ( [0] => H [1] => A1H [2] => A2H [ 3] => A2A2H ) [1 ] => Tableau ( [0] => [1] => A1 [2] => A2 [3] => A2 ) )

12. + : comme quantificateur, indiquant une ou plusieurs correspondances

Le code spécifique est le suivant :

<?php
$p = "/(A[0-9])+H/";//查找H字符 前面至少包含A和一个<9的数字相连
$str = "A1AH A1H A2H A2A2H";
if (preg_match_all($p, $str,$math)) {
    echo &#39;该字符串符合这个规则<br/>&#39;;
    echo "匹配结果为:";
    print_r($math);
}else{
    echo &#39;该字符串不符合这个规则&#39;;
}
?>
Copier après la connexion

Le résultat courant est le suivant :

La chaîne est conforme à cette règle
Le résultat de la correspondance est :Array ( [0] => Array ( [0] => A1H [1] => A2H [2] => A2A2H ) [1 ] => Array ( [0] => A1 [1 ] => A2 [2] => A2 ) )

13. : Indique la balise de début du quantificateur personnalisé.

14. } : Indique la fin du quantificateur personnalisé. Le code spécifique pour la balise

est le suivant :

<?php
$p = "/d{2}/";//查找2个d的字符串
$str = "dd和dd和ddd";
if (preg_match_all($p, $str,$math)) {
    echo &#39;该字符串符合这个规则<br/>&#39;;
    echo "匹配结果为:";
    print_r($math);
}else{
    echo &#39;该字符串不符合这个规则&#39;;
}
?>
Copier après la connexion

Le résultat courant est :

La chaîne est conforme à cette règle
Le résultat de la correspondance est : Array ( [ 0] => Array ( [0] => dd [1] => dd [2] => dd ) )

Résumé :

1. Comprendre la définition des métacaractères des expressions régulières

2. Maîtriser l'utilisation de base des métacaractères dans les expressions régulières

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:
1
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