Maison  >  Article  >  développement back-end  >  Comment utiliser des règles régulières pour exclure des caractères dans une chaîne en php

Comment utiliser des règles régulières pour exclure des caractères dans une chaîne en php

青灯夜游
青灯夜游original
2022-12-15 15:30:295593parcourir

Deux méthodes : 1. Utilisez preg_replace() pour effectuer une recherche et un remplacement d'expression régulière. Remplacez simplement les caractères correspondants dans la chaîne par des caractères nuls. La syntaxe est "preg_replace(regular, "", $str )". 2. Utilisez preg_match_all() pour rechercher tous les résultats correspondant à l'expression régulière dans la chaîne. Chaque résultat correspondant sera placé dans un tableau $array. La syntaxe est "preg_match_all(regular, $str, $array);"

Comment utiliser des règles régulières pour exclure des caractères dans une chaîne en php

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur DELL G3

Qu'est-ce qu'une expression régulière

Une expression régulière est une formule logique pour les opérations sur les chaînes, c'est-à-dire Utilisez des caractères spécifiques prédéfinis et des combinaisons de ces caractères spécifiques pour former une "chaîne de règles". Cette "chaîne de règles" est utilisée pour exprimer une logique de filtrage des chaînes.

Les expressions régulières construisent des modèles avec des règles spécifiques, les comparent avec les informations de chaîne d'entrée et les utilisent dans des fonctions spécifiques pour réaliser des opérations telles que la correspondance de chaînes, la recherche, le remplacement et la segmentation.

php utilise des expressions régulières pour filtrer les chaînes

En php, vous pouvez utiliser des expressions régulières pour filtrer les chaînes, exclure (supprimer) ou extraire des caractères spécifiés.

Méthode 1. Utilisez la fonction preg_replace()

La fonction preg_replace() peut effectuer la recherche et le remplacement d'expressions régulières et constitue une puissante fonction de traitement de remplacement de chaîne.

preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
  • signifie rechercher la partie du sujet qui correspond au motif et la remplacer par un remplacement ; le paramètre facultatif limit est utilisé pour définir le nombre maximum de remplacements (la valeur par défaut est -1, illimité).

Exemple :

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);  
$str =&#39;0我是123456一段测试的字789符串0&#39;;
echo "原字符串:".$str."<br>";
$result = preg_replace("/[^0-9]/", "", $str);
echo "过滤后字符串:".$result;
?>

preg_replace("/[^0-9]/", "", $str) signifie une correspondance sauf 0~9 et remplacez ces caractères par des caractères nuls (c'est-à-dire supprimez ces caractères), alors seuls les caractères numériques resteront : preg_replace("/[^0-9]/", "", $str)的意思为匹配除了0~9间的数字以外的字符,并将这些字符替换为空字符(即删除这些字符),那么就只剩下数字字符了:

Comment utiliser des règles régulières pour exclure des caractères dans une chaîne en php

方法2:使用preg_match_all()函数

preg_match_all()函数可以搜索字符串中所有可以和正则表达式匹配的结果,是一个执行全局正则表达式匹配的函数,它的语法格式为:

preg_match_all($pattern, $subject [, &$matches [, $flags = PREG_PATTERN_ORDER [, $offset = 0 ]]])
  • $pattern    正则表达式    

  • $subject    进行匹配的字符串    

  • $matches    所有匹配结果(数组)    

preg_match_all() 将实现全部结果的匹配,如果想要匹配成功一次后停止匹配,需要使用 preg_match() 函数。

示例:

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);  
$str =&#39;0我是123456一段测试的字789符串0&#39;;
echo "原字符串:".$str."<br><br>";

$result = &#39;&#39;;
preg_match_all(&#39;/\d+/&#39;,$str,$array);
echo "过滤结果:";
var_dump($array);


foreach($array as $arr){
	foreach($arr as $value){
		$result .= $value;
	}
}
echo "过滤后字符串:".$result;
?>

preg_match_all('/d+/',$str,$array)的意思为在字符串$str中多次查找只包含0~9间数字字符的子串,将每次的匹配结果放在一个数组$array中。我们使用var_dump($array)来输出这个数组看看:

Comment utiliser des règles régulières pour exclure des caractères dans une chaîne en php

会发现结果数组$array

Comment utiliser des règles régulières pour exclure des caractères dans une chaîne en php

Comment utiliser des règles régulières pour exclure des caractères dans une chaîne en php

Méthode 2 : Utiliser la fonction preg_match_all()

Fonction preg_match_all() pour rechercher des caractères Tous les résultats dans la chaîne qui peuvent correspondre à l'expression régulière est une fonction qui effectue une correspondance globale d'expression régulière. Son format de syntaxe est :

foreach($array as $arr){
	foreach($arr as $value){
		$result .= $value;
	}
}
echo "过滤后字符串:".$result;
🎜🎜🎜$pattern Expression régulière 🎜🎜🎜🎜$subject La chaîne à rechercher 🎜🎜🎜🎜$matches Tous les résultats correspondants (tableau). ) 🎜🎜🎜🎜preg_match_all() correspondra à tous les résultats. Si vous souhaitez arrêter la correspondance après une correspondance réussie, vous devez utiliser la fonction preg_match(). 🎜🎜Exemple : 🎜rrreee🎜preg_match_all('/d+/',$str,$array) signifie que plusieurs recherches dans la chaîne $str ne contiennent que 0~9 A sous-chaîne de caractères numériques entre code>, et chaque résultat correspondant est placé dans un tableau $array. Utilisons var_dump($array) pour afficher ce tableau et voir : 🎜🎜Comment utiliser des règles régulières pour exclure des caractères dans une chaîne en php🎜🎜Vous constaterez que le tableau de résultats $array est un tableau à deux dimensions et que les éléments contenant les résultats correspondants sont les tableaux internes. Si vous souhaitez assembler ces éléments dans une chaîne, vous devez imbriquer deux niveaux de boucles foreach : 🎜rrreee🎜🎜🎜🎜Apprentissage recommandé : "🎜Tutoriel vidéo 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