千家信息网

PHP正则表达式替换怎么实现

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章给大家分享的是有关PHP正则表达式替换怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。PHP正则表达式替换的相关概念:preg_replace:执行正则表达式
千家信息网最后更新 2026年11月04日PHP正则表达式替换怎么实现

这篇文章给大家分享的是有关PHP正则表达式替换怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

PHP正则表达式替换的相关概念:

preg_replace:执行正则表达式的搜索和替换

mixed preg_replace (  mixed pattern,  mixed replacement,  mixed subject [, int limit])

preg_replace:允许你替换字符串中匹配到你定义的正则表达式。

一个简单的注释移除功能:

preg_replace('[(/*)+.+(*/)]', '', $val);

这段代码可以移除在 PHP 和 CSS 中使用 /* 注释 */ 格式的多多行注释。其中的三个参数分别为正则表达式,要替换成的字符串和要替换的目标字符串(这里要做移除功能,所以是个空白字符串 -> '')。如果你想匹配次级规则,可以使用 $0 代表全部匹配,$1、$2 等,以此类推代表分别的次级规则。

在 subject 中搜索 pattern 模式的匹配项并替换为 replacement。如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。

replacement 可以包含 //n 形式或(自 PHP 4.0.4 起)$n 形式的逆向引用,首选使用后者。每个此种引用将被替换为与第 n 个被捕获的括号内的子模式所匹配的文本。n 可以从 0 到 99,其中 //0 或 $0 指的是被整个模式所匹配的文本。对左圆括号从左到右计数(从 1 开始)以取得子模式的数目。

对替换模式在一个逆向引用后面紧接着一个数字时(即:紧接在一个匹配的模式后面的数字),不能使用熟悉的 //1 符号来表示逆向引用。举例说 //11,将会使 preg_replace() 搞不清楚是想要一个 //1 的逆向引用后面跟着一个数字 1 还是一个 //11 的逆向引用。本例中的解决方法是使用 /${1}1。这会形成一个隔离的 $1 逆向引用,而使另一个 1 只是单纯的文字。

PHP正则表达式替换的相关实例:

例子 1. 逆向引用后面紧接着数字的用法

如果搜索到匹配项,则会返回被替换后的 subject,否则返回原来不变的 subject。

preg_replace() 的每个参数(除了 limit)都可以是一个数组。如果 pattern 和 replacement 都是数组,将以其键名在数组中出现的顺序来进行处理。这不一定和索引的数字顺序相同。如果使用索引来标识哪个 pattern 将被哪个 replacement 来替换,应该在调用 preg_replace() 之前用 ksort() 对数组进行排序。

例子 2. 在 preg_replace() 中使用索引数组

如果 subject 是个数组,则会对 subject 中的每个项目执行搜索和替换,并返回一个数组。

如果 pattern 和 replacement 都是数组,则 preg_replace() 会依次从中分别取出值来对 subject 进行搜索和替换。如果 replacement 中的值比 pattern 中的少,则用空字符串作为余下的替换值。如果 pattern 是数组而 replacement 是字符串,则对 pattern 中的每个值都用此字符串作为替换值。反过来则没有意义了。

/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码(在适当的逆向引用替换完之后)。提示:要确保 replacement 构成一个合法的 PHP 代码字符串,否则 PHP 会在报告在包含 preg_replace() 的行中出现语法解析错误。

例子 3. 替换数个值

本例将输出:

$startDate = 5/27/1999

例子 4. 使用 /e 修正符

]*>)/e", "'//1'.strtoupper('//2').'//3'", $html_body); ?>

这将使输入字符串中的所有 HTML 标记变成大写,以上的实例运行支持版本为PHP 3>= 3.0.9, PHP 4。

PHP正则表达式替换的相关内容就向你介绍到这里,希望那个对你了解和掌握PHP正则表达式替换有所帮助。

用正则表达式替换内容 php

以前做一个项目,就是有一个问答的页面,比如说在回答或者提问的内容中插入表情。写到内容里的是表情图片的名字(而且是不带后缀的,比如:f_002.png)表情包放在项目里,我需要在取除内容的时候将里面的表情名字替换成图片。

存到数据库中的内容是这样的: 不知道[f_013] (最后面的这个[f_013]就是表情图在数据库中存放的形式)

我需要做的就是从数据库中取出内容,并且把内容中的像这样的字符 [f_013] 处理成图片地址,很显然这里需要用到正则表达式。

1.首先我得先找到这个字符串

$rule = "/(?:\[)(f_.[0-9]{1,3})(?:\])/i";

这个正则匹配可以帮我找到表情的字符串

2.找到后就是把这个字符串换成表情图片存放的地址,这里用到了一个函数就是正则表达式的替换。

就是这个函数:preg_match_all

echo preg_replace("/(?:\[)(f_.[0-9]{1,3})(?:\])/i","",$line['content']);
$line['content'] 这个是我从数据库中取出的内容,

"" 这个是我将要替换的图片地址,比如我的图片地址是这样的

这里面有一个非常重要的知识点: "\${1}" 它就是那个存放在数据库里面表情的字符串。

\${1} = f_013

我这里有我替换的一个完整代码:

",$line['content']);   }   ?>

感谢各位的阅读!关于"PHP正则表达式替换怎么实现"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

字符 正则 字符串 表达式 内容 表情 数组 图片 就是 模式 数字 数据 数据库 搜索 代码 例子 地址 参数 形式 注释 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 山东特亿宝互联网科技有限公司 互联网科技产业 互联网科技财经 礼当家互联网科技 狮子座互联网科技有限公司 唐信互联网科技 大连 苏州大垚互联网科技 深圳期待互联网科技 互联网科技博客 北京大学互联网科技怎么样 随着互联网科技发展 浙江互联网科技研学营 岳阳华臻互联网科技有限公司 中国航天科技大学国际工业互联网 佛山市拉法互联网科技有限公司 无锡工业互联网科技有限公司 世界互联网科技成果奖 同城互联网络科技 北京天晋互联网科技有限公司 杭州融税互联网科技有限公司 手磨咖啡 亿人帮互联网科技有限公司 天下捷融互联网科技 互联网科技教育视频 宝灵互联网科技有限公司 乌苏新华互联网科技做什么的 本届互联网博览会上的黑科技 翼展科技 首家互联网医院 无锡工业互联网科技有限公司 陕西彩京云互联网科技有限公司
0