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.]] ].
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 ]]] )
Copier après la connexion
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。";
}
?>
Copier après la connexion
Le résultat de l'exécution est le suivant. :
查找到匹配的字符串 php。
Copier après la connexion
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";
}
?>
Copier après la connexion
Le résultat de l'exécution est le suivant Comme indiqué : 查找到匹配的字符串。
未发现匹配的字符串。
Copier après la connexion
3. Obtenez le nom de domaine dans l'URL
. 🎜>
<?php
// 从URL中获取主机名称
preg_match('@^(?:http://)?([^/]+)@i',
"http://www.runoob.com/index.html", $matches);
$host = $matches[1];
// 获取主机名称的后面两部分
preg_match('/[^.]+\.[^.]+$/', $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>
Copier après la connexion
Le résultat de l'exécution est le suivant :
domain name is: runoob.com
Copier après la connexion
4. Utilisez le sous-groupe nommé
<?php
$str = 'foobar: 2008';
preg_match('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);
/* 下面例子在php 5.2.2(pcre 7.0)或更新版本下工作, 然而, 为了后向兼容, 上面的方式是推荐写法. */
// preg_match('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);
print_r($matches);
?>
Copier après la connexion
Les résultats de l'exécution sont les suivants :
Array
(
[0] => foobar: 2008
[name] => foobar
[1] => foobar
[digit] => 2008
[2] => 2008
)
Copier après la connexion
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!