php正则替换函数有哪些

php正则替换函数有:1、preg_replace(),执行一个正则表达式的搜索和替换;2、preg_filter();3、preg_replace_callback();4、preg_replace_callback_array()。

php正则替换函数有哪些

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

php正则替换函数

1、preg_replace()函数

preg_replace 函数执行一个正则表达式的搜索和替换。

立即学习“PHP免费学习笔记(深入)”;

语法

mixed 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。

示例:


登录后复制

输出:

php 123,456

登录后复制

2、preg_filter()函数

preg_filter 函数用于执行一个正则表达式搜索和替换。

语法

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

登录后复制

preg_filter() 等价于 preg_replace() ,但它仅仅返回与目标匹配的结果。

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


登录后复制

输出:

preg_filter 返回值:Array(    [0] => A:C:1    [1] => B:C:a    [2] => A:2    [3] => B:b    [4] => A:3    [7] => A:4)preg_replace 返回值:Array(    [0] => A:C:1    [1] => B:C:a    [2] => A:2    [3] => B:b    [4] => A:3    [5] => A    [6] => B    [7] => A:4)

登录后复制

可以看出 preg_filter 只返回匹配结果,不匹配的直接忽略,而 preg_replace 将不匹配的结果 ‘A’ ‘B’ 元素也一起返回。

3、preg_replace_callback()函数

preg_replace_callback 函数执行一个正则表达式搜索并且使用一个回调进行替换。

语法

mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] )

登录后复制

这个函数的行为除了可以指定一个 callback 替代 replacement 进行替换字符串的计算,其他方面等同于 preg_replace()。

参数说明:

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

$callback: 一个回调函数,在每次需要替换时调用,调用时函数得到的参数是从subject 中匹配到的结果。

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

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

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

返回值

如果subject是一个数组, preg_replace_callback()返回一个数组,其他情况返回字符串。 错误发生时返回 NULL。

如果查找到了匹配,返回替换后的目标字符串(或字符串数组), 其他情况subject 将会无变化返回。

示例:

<?php header("Content-type: text/html; charset=utf-8");// 将文本中的年份增加一年.$text = "愚人节是 04/01/2020
";$text.= "去年元旦是 12/24/2019
";// 回调函数function next_year($matches){  // 通常: $matches[0]是完成的匹配  // $matches[1]是第一个捕获子组的匹配  // 以此类推  return $matches[1].($matches[2]+1);}echo preg_replace_callback(            "|(d{2}/d{2}/)(d{4})|",            "next_year",            $text); ?>

登录后复制

输出:

愚人节是 04/01/2021去年元旦是 12/24/2020

登录后复制

4、preg_replace_callback_array()函数

preg_replace_callback_array 函数执行一个正则表达式搜索并且使用一个回调进行替换。

语法

mixed preg_replace_callback_array ( array $patterns_and_callbacks , mixed $subject [, int $limit = -1 [, int &$count ]] )

登录后复制

函数类似于 preg_replace_callback(), 但它是基于每个模式匹配来回调函数进行替换。

参数说明:

$patterns_and_callbacks: 关联数组,key(模式) => value(回调函数)

$subject: 要查找的和替换的字符串或数组。

$limit: 可选,每个模式最大的替换次数,默认为 -1(无限制,全部匹配完)。

$count: 可选,指定替换的次数。

返回值

如果 subject 是一个数组返回数组,否则返回字符串。发生错误则返回 NULL。

如果查找到了匹配,返回替换后的目标字符串(或字符串数组), 其他情况 subject 将会无变化返回。

示例:

 function ($match) {            echo strlen($match[0]), ' matches for "a" found', PHP_EOL;        },        '~[b]+~i' => function ($match) {            echo strlen($match[0]), ' matches for "b" found', PHP_EOL;        }    ],    $subject);?>

登录后复制

输出:

6 matches for "a" found3 matches for "b" found

登录后复制

说明:

该函数在 PHP7+ 版本支持。

推荐学习:《PHP视频教程》

以上就是php正则替换函数有哪些的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2512999.html

(0)
上一篇 2025年3月5日 15:01:53
下一篇 2025年3月1日 08:12:54

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何使用PHP中bz2压缩扩展工具

    本篇文章给大家介绍一下使用php中bz2压缩扩展工具的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 在日常的开发和电脑使用中,我们经常会接触到压缩和解压的一些工具,PHP 也为我们准备了很多相关的操作扩展包,都有直…

    2025年3月5日
    200
  • 浅谈PHP的CLI命令行运行模式

    本篇文章给大家介绍一下php的cli命令行运行模式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 PHP的CLI命令行运行模式浅析 在做开发的时候,我们不仅仅只是做各种网站或者接口,也经常需要写一些命令行脚本用来处理一些…

    2025年3月5日
    200
  • php两个数组怎么去掉相同的元素

    PHP去掉两个数组中相同元素的方法:首先嵌套两个foreach循环来遍历两个数组;然后在循环体中使用if语句查找出两个数组中的相同元素;最后使用unset()函数将相同元素从这两个数组中移除即可。 本教程操作环境:windows7系统、PH…

    2025年3月5日
    200
  • 详细介绍PHP中的数据库连接持久化

    本篇文章给大家详细介绍php中的数据库连接持久化。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 数据库的优化是我们做web开发的重中之重,甚至很多情况下其实我们是在面向数据库编程。当然,用户的一切操作、行为都是以数据的形…

    2025年3月5日
    200
  • PHP如何使用mysqli_real_escape_string()函数?

    本篇文章给大家介绍一下php使用mysqli_real_escape_string()函数的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 mysqli_real_escape_string()函数是PHP中的内置函…

    2025年3月5日
    200
  • PHP如何使用DsVector copy()函数?

    本篇文章给大家介绍一下php使用dsector copy()函数的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 DsVector::copy()函数是PHP中的内置函数, 用于创建给定向量的副本。 语法如下: Ds…

    2025年3月5日
    200
  • PHP如何使用strval()函数?

    本篇文章给大家介绍一下php使用strval()函数的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 strval()函数是PHP中的内置函数, 用于将任何标量值(字符串, 整数或双精度)转换为字符串。我们不能在数组…

    2025年3月5日
    200
  • php中mysql和mysqli的区别是什么

    区别:mysqli是永远连接函数,而mysql是非持继连接函数。mysql每次链接都会打开一个连接的进程;mysqli一直使用同一连接进程,这样就可以很大程度的减轻服务器端压力。 本教程操作环境:windows7系统、PHP7.1&…

    2025年3月5日
    200
  • php数组怎么删除第一个元素

    php删除数组中第一个元素的方法:1、使用array_shift()函数,语法“array_shift(array);”;2、使用array_splice()函数,语法“array_splice(array,0,1);”。 本教程操作环境:…

    2025年3月5日
    200
  • php array怎么去除指定值

    方法:1、先利用foreach语句遍历数组,找到指定值对应的下标;然后使用“unset(arr[下标])”语句进行删除;2、先使用array_search()函数在数组中搜索特定值,返回对应键名;然后使用unset()函数根据键名删除元素。…

    2025年3月5日
    200

发表回复

登录后才能评论