Cet article partage principalement avec vous l'explication détaillée des fonctions d'expression régulière couramment utilisées en PHP. J'espère qu'il pourra vous aider.
Déclaration : $pattern=regular expression, $subject=target data
1.preg_match() et preg_match_all()
preg_match($pattern,$subject,[array &$matches]) preg_match_all($pattern,$subject,array &$matches)
preg_match ne correspondra qu'une seule fois, preg_match_all fera correspondre toutes les chaînes correspondantes et les placera dans le tableau matches, et les deux fonctions auront une valeur de retour entière.
renvoie le nombre de fois où le résultat correspond;
Nous pouvons également connaître le nombre de paires clé-valeur dans les correspondances grâce à la valeur de retour de la fonction.
Donnons un exemple pour en faire l'expérience :
<?php //preg_match ,preg_match_all $pattern = '/[0-9]/'; $subject = 'weuyr3ui76as83s0ck9'; $m1 = $m2 = array(); preg_match($pattern,$subject,$m1); preg_match_all($pattern,$subject,$m2); show($m1); echo '<hr>'; show($m2); function show($var = null){ if(empty($var)){ echo 'null'; } else if(is_array($var)||is_object($var)){ //array,object echo '<pre class="brush:php;toolbar:false">'; print_r($var); echo ''; } else{ //string ,int ,float... echo $var; } } ?>
Le code ci-dessus consiste à trouver le numéro dans la chaîne weuyr3ui76as83s0ck9.
2. preg_replace() et preg_filter()
preg_replace($pattern,$replacemenrt,$subject) preg_filter($pattern,$replacement,$subject)
Donnons un exemple :
<?php //preg_filter() preg_replace() $pattern = '/[0-9]/'; $subject ='weuyr3ui76as83s0ck9'; $replacement = '球宝宝'; $str1 = preg_replace($pattern,$replacement,$subject); $str2 = preg_filter($pattern,$replacement,$subject); show($str1); echo '<hr>'; show($str2); function show($var = null){ if(empty($var)){ echo 'null'; } else if(is_array($var)||is_object($var)){ //array,object echo '<pre class="brush:php;toolbar:false">'; print_r($var); echo ''; } else{ //string ,int ,float... echo $var; } } ?>
Dans preg_replacement(), non seulement les caractères peuvent être utilisés. ou des tableaux peuvent également être utilisés.
Juste besoin de : $pattern = array('/[0-3]/','[4-6]','[7-9]');
$replacement = array('ball','bao','bao');
Cela signifie que lorsqu'un nombre de 0 à 3 correspond, "ball" sera utilisé à la place lorsqu'il correspond à 4-6 lors de la correspondance ; un certain nombre dans , utilisez plutôt "宝" ; lorsque vous faites correspondre un certain nombre dans 7-9, utilisez plutôt "宝".
Par exemple :
<?php //preg_filter() preg_replace() //$pattern = '/[0-9]/' $pattern = array('/[0-3]/','/[4-6]/','/[7-9]/'); $subject ='weuyr3ui76as83s0ck9'; //$replacement = '球宝宝'; $replacement = array('球','宝','宝'); $str1 = preg_replace($pattern,$replacement,$subject); $str2 = preg_filter($pattern,$replacement,$subject); show($str1); echo '<hr>'; show($str2); function show($var = null){ if(empty($var)){ echo 'null'; } else if(is_array($var)||is_object($var)){ //array,object echo '<pre class="brush:php;toolbar:false">'; print_r($var); echo ''; } else{ //string ,int ,float... echo $var; } } ?>
Puisque les résultats de preg_filter() et preg_replacement() sont les mêmes dans les deux exemples ci-dessus, quelle est la différence entre eux ?
Lorsque nous ajoutons $subject = array('weuy','r3ui','76as83','s','0ck9');, la différence entre eux sera affichée :
<?php //preg_filter() preg_replace() //$pattern = '/[0-9]/' $pattern = array('/[0-3]/','/[4-6]/','/[7-9]/'); //$subject ='weuyr3ui76as83s0ck9'; $subject = array('weuy','r3ui','76as83','s','0ck9'); //$replacement = '球宝宝'; $replacement = array('球','宝','宝'); $str1 = preg_replace($pattern,$replacement,$subject); $str2 = preg_filter($pattern,$replacement,$subject); show($str1); echo '<hr>'; show($str2); function show($var = null){ if(empty($var)){ echo 'null'; } else if(is_array($var)||is_object($var)){ //array,object echo '<pre class="brush:php;toolbar:false">'; print_r($var); echo ''; } else{ //string ,int ,float... echo $var; } } ?>
Comme le montre ce qui précède :
La fonction preg_replacement() sera affichée qu'il y ait ou non des mots remplacés, mais la fonction preg_filter() ne sera pas affichée s'il n'y a pas de mots remplacés. de.
Recommandations associées :
Partage d'expressions régulières PHP
Exemples d'expressions régulières couramment utilisées_expression régulière
Résumé des expressions régulières 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!