Maison >développement back-end >Problème PHP >Quelle est l'utilité de php preg match ?

Quelle est l'utilité de php preg match ?

coldplay.xixi
coldplay.xixioriginal
2020-09-30 09:42:522211parcourir

L'utilisation de php preg match est d'effectuer une correspondance d'expression régulière, la syntaxe est [int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags.]] ].

Quelle est l'utilité de php preg match ?

est utilisée pour effectuer une correspondance d'expression régulière preg_match

Syntaxe

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

Rechercher le sujet avec. pattern Une correspondance de l'expression régulière donnée

Description du paramètre :

  • $pattern : Le modèle à rechercher, sous forme de chaîne.

  • $subject : Chaîne d'entrée

  • $matches : Si le paramètre correspond est fourni, il sera renseigné avec le. les résultats de la recherche [0] contiendront le texte correspondant au modèle complet, $matches[1] contiendra le texte correspondant au premier sous-groupe capturé, et ainsi de suite. $flags: flags Peut être défini sur les valeurs de balise suivantes :

    PREG_OFFSET_CAPTURE : Si cette balise est passée, le décalage de la chaîne (par rapport à la chaîne cible) sera renvoyé pour chaque occurrence de la correspondance. Remarque : Cela modifiera le tableau rempli dans le paramètre matches afin que chaque élément. devient une chaîne dont le 0ème élément est la chaîne correspondante, et le premier élément est le décalage de la chaîne correspondante dans le sujet de la chaîne cible
  • offset : généralement, la recherche commence depuis le début. de la chaîne cible. Le paramètre facultatif offset est utilisé pour spécifier la recherche à partir d'une position inconnue dans la chaîne cible (l'unité est l'octet

  • Valeur de retour

    ).
  • Renvoie le nombre de correspondances pour le motif. Sa valeur sera 0 fois (aucune correspondance) ou 1 fois, car preg_match() est au début. Contrairement à preg_match_all() qui arrêtera de chercher après une correspondance, il recherchera le nombre de correspondances. sujet jusqu'à ce qu'il atteigne la fin. Si une erreur se produit, preg_match() renvoie FALSE

1 Recherchez la chaîne de texte "php":

<?php
//模式分隔符后的"i"标记这是一个大小写不敏感的搜索
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
    echo "查找到匹配的字符串 php。";
} else {
    echo "未发现匹配的字符串 php。";
}
?>

Le résultat de l'exécution est le suivant. :

查找到匹配的字符串 php。

2. Recherchez le mot "word"

<?php
/* 模式中的\b标记一个单词边界,所以只有独立的单词"web"会被匹配,而不会匹配
 * 单词的部分内容比如"webbing" 或 "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
    echo "查找到匹配的字符串。\n";
} else {
    echo "未发现匹配的字符串。\n";
}
 
if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
    echo "查找到匹配的字符串。\n";
} else {
    echo "未发现匹配的字符串。\n";
}
?>
Le résultat de l'exécution est le suivant Comme indiqué :
查找到匹配的字符串。
未发现匹配的字符串。

3. Obtenez le nom de domaine dans l'URL

. 🎜>

<?php
// 从URL中获取主机名称
preg_match(&#39;@^(?:http://)?([^/]+)@i&#39;,
    "http://www.runoob.com/index.html", $matches);
$host = $matches[1];
 
// 获取主机名称的后面两部分
preg_match(&#39;/[^.]+\.[^.]+$/&#39;, $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>

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

domain name is: runoob.com

4. Utilisez le sous-groupe nommé

<?php
 
$str = &#39;foobar: 2008&#39;;
 
preg_match(&#39;/(?P<name>\w+): (?P<digit>\d+)/&#39;, $str, $matches);
 
/* 下面例子在php 5.2.2(pcre 7.0)或更新版本下工作, 然而, 为了后向兼容, 上面的方式是推荐写法. */
// preg_match(&#39;/(?<name>\w+): (?<digit>\d+)/&#39;, $str, $matches);
 
print_r($matches);
 
?>

Les résultats de l'exécution sont les suivants :

Array
(
    [0] => foobar: 2008
    [name] => foobar
    [1] => foobar
    [digit] => 2008
    [2] => 2008
)

Si vous souhaitez en savoir plus sur la programmation, faites attention à la rubrique

formation php

 !

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!

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