Maison  >  Article  >  développement back-end  >  Comment implémenter du contenu de remplacement régulier en php

Comment implémenter du contenu de remplacement régulier en php

青灯夜游
青灯夜游original
2022-04-27 16:58:267007parcourir

php正则替换内容的方法:1、用preg_replace(),可执行正则表达式的搜索和替换,语法“preg_filter (正则式,替换值,数据)”;2、用preg_filter(),语法“preg_filter(正则式,替换值,数据)”。

Comment implémenter du contenu de remplacement régulier en php

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

在php中,可以使用下面两个函数来实现正则替换内容(字符串)

  • preg_replace():执行一个正则表达式的搜索和替换

  • preg_filter():执行一个正则表达式的搜索和替换

1、使用preg_replace()函数

preg_replace() 函数可以执行正则表达式的搜索和替换,是一个强大的字符串替换处理函数。语法格式:

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

搜索 subject 中匹配 pattern 的部分, 以 replacement 进行替换。

参数说明:

  • $pattern: 要搜索的模式,可以是字符串或一个字符串数组。

  • $replacement: 用于替换的字符串或字符串数组。

  • $subject: 要搜索替换的目标字符串或字符串数组。

  • $limit: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。

  • $count: 可选,为替换执行的次数。

返回值

  • 如果 subject 是一个数组, preg_replace() 返回一个数组, 其他情况下返回一个字符串。

  • 如果匹配被查找到,替换后的 subject 被返回,其他情况下 返回没有改变的 subject。如果发生错误,返回 NULL。

示例1:将 hello 替换为 phpcn

<?php
$string = &#39;hello 123, 456&#39;;
$pattern = &#39;/(\w+) (\d+), (\d+)/i&#39;;
$replacement = &#39;phpcn ${2},$3&#39;;
echo preg_replace($pattern, $replacement, $string);
?>

Comment implémenter du contenu de remplacement régulier en php

示例2:删除空格字符

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$str = &#39;欢  迎  来 到 p h p 中 文 网&#39;;
$str = preg_replace(&#39;/\s+/&#39;, &#39;&#39;, $str);
// 将会改变为&#39;欢迎来到php中文网&#39;
echo $str;
?>

Comment implémenter du contenu de remplacement régulier en php

2、使用preg_filter()函数

preg_filter() 函数也用于执行一个正则表达式的搜索和替换,等价于preg_replace() 函数;不同的是 preg_filter() 函数只返回匹配成功的结果,而 preg_replace() 返回所有结果,不管是否匹配成功。

示例:比较preg_filter() 和preg_replace()

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$subject = array(&#39;1&#39;, &#39;a&#39;, &#39;2&#39;, &#39;b&#39;, &#39;3&#39;, &#39;A&#39;, &#39;B&#39;, &#39;4&#39;); 
$pattern = array(&#39;/\d/&#39;, &#39;/[a-z]/&#39;, &#39;/[1a]/&#39;); 
$replace = array(&#39;A:$0&#39;, &#39;B:$0&#39;, &#39;C:$0&#39;); 
 
echo "preg_filter 返回值:";
var_dump(preg_filter($pattern, $replace, $subject)); 
 
echo "preg_replace 返回值:";
var_dump(preg_replace($pattern, $replace, $subject)); 
?>

Comment implémenter du contenu de remplacement régulier en php

推荐学习:《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