广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php正则替换如何实现
  • 288
分享到

php正则替换如何实现

2023-07-04 20:07:39 288人浏览 安东尼
摘要

本篇内容介绍了“PHP正则替换如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php正则替换的实现方法:1、创建一个php示例文件;2

本篇内容介绍了“PHP正则替换如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

php正则替换的实现方法:1、创建一个php示例文件;2、使用“preg_replace('[()]', '', $val);”方式执行正则表达式的搜索和替换即可。

PHP正则表达式替换实现是如何的呢?首先向你介绍下PHP preg_replace,PHP preg_replace的使用是我们实现的方法,那么对于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. 逆向引用后面紧接着数字的用法

<?php $string = "April 15, 2003"; $pattern = "/(/w+) (/d+), (/d+)/i"; $replacement = "/${1}1,/$3"; print preg_replace($pattern, $replacement, $string); ?>

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

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

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

<?php $string =  "The quick brown fox jumped over the lazy dog."; $patterns[0] = "/quick/"; $patterns[1] = "/brown/"; $patterns[2] = "/fox/"; $replacements[2] = "bear"; $replacements[1] = "black"; $replacements[0] = "slow"; print preg_replace($patterns, $replacements, $string); ksort($patterns); ksort($replacements); print preg_replace($patterns, $replacements, $string); ?>

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

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

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

例子 3. 替换数个值

<?php $patterns = array ("/(19|20)(/d{2})-(/d{1,2})-(/d{1,2})/",           "/^/s*{(/w+)}/s*=/"); $replace = array ("//3///4///1//2", "$//1 ="); print preg_replace  ($patterns, $replace, "{startDate} = 1999-5-27"); ?>

本例将输出:

$startDate = 5/27/1999

例子 4. 使用 /e 修正符

<?php preg_replace  ("/(<//?)(/w+)([^>]*>)/e", "'//1'.strtoupper('//2').'//3'", $html_body); ?>

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

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

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

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

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

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

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

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

就是这个函数:preg_match_all

echo preg_replace("/(?:\[)(f_.[0-9]{1,3})(?:\])/i","<img src='__PUBLIC__/face/\${1}.png'>",$line['content']);

$line['content']   这个是我从数据库中取出的内容,

"<img src='__PUBLIC__/face/\${1}.png'>"  这个是我将要替换的图片地址,比如我的图片地址是这样的<img src="__PUBLIC__/face/f_013.png">

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

\${1} = f_013

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

<?php$result = array();   $n = preg_match_all("/(?:\[)(f_.[0-9]{1,3})(?:\])/i",$line['content'], $result);    if($n == 0 || $n == false)     {    echo $line['content'];   }else   {     echo preg_replace("/(?:\[)(f_.[0-9]{1,3})(?:\])/i","<img src='__PUBLIC__/face/\${1}.png'>",$line['content']);   }   ?>

“php正则替换如何实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: php正则替换如何实现

本文链接: https://www.lsjlt.com/news/347220.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php正则替换如何实现
    本篇内容介绍了“php正则替换如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php正则替换的实现方法:1、创建一个php示例文件;2...
    99+
    2023-07-04
  • php正则如何实现替换alt
    本篇内容主要讲解“php正则如何实现替换alt”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php正则如何实现替换alt”吧!php正则实现替换alt的方法:1、创建一个PHP示例文件;2、获取...
    99+
    2023-06-25
  • php正则如何实现替换电话
    本篇内容介绍了“php正则如何实现替换电话”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php正则实现替换电话的方法:1、创建一个PHP示例...
    99+
    2023-06-22
  • php如何实现正则替换内容
    这篇文章主要为大家展示了php如何实现正则替换内容,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“php如何实现正则替换内容”这篇文章吧。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处...
    99+
    2023-06-06
  • jquery如何实现正则替换
    这篇文章主要介绍“jquery如何实现正则替换”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“jquery如何实现正则替换”文章能帮助大家解决问题。 ...
    99+
    2022-10-19
  • javascript如何实现正则替换
    本篇内容主要讲解“javascript如何实现正则替换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript如何实现正则替换”吧! ...
    99+
    2022-10-19
  • php正则如何替换src
    本篇内容主要讲解“php正则如何替换src”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php正则如何替换src”吧!php正则替换src的方法:1、打开相应的PHP文件;2、通过“if(!fu...
    99+
    2023-07-04
  • php正则怎么实现替换alt
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php正则怎么实现替换alt?php正则表达式提取img alt/title标签并替换有时我们需要对富文本编辑器中的img标签进行必要的处理以满足网站自身的需要,比如:根...
    99+
    2021-11-16
    php alt
  • php正则函数如何实现匹配替换
    本篇内容主要讲解“php正则函数如何实现匹配替换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php正则函数如何实现匹配替换”吧!php正则函数实现匹配替换的方法:1、创建一个PHP示例文件;2...
    99+
    2023-06-25
  • php如何实现正则替换特殊符号
    小编给大家分享一下php如何实现正则替换特殊符号,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php实现正则替换特殊符号的方法:首先创建一个PHP示例文件;然后通...
    99+
    2023-06-06
  • php正则如何替换符号
    这篇文章主要介绍了php正则如何替换符号,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php正则替换符号的方法:首先创建一个PHP示例文件;然后通过正则表达式“preg_re...
    99+
    2023-06-14
  • php正则怎么实现替换电话
    本文操作环境:Windows7系统,PHP7.1版,Dell G3电脑。php正则怎么实现替换电话?php手机号正则替换中间四位php手机号正则替换中间四位代码如下:$str = '13525462555'; $patter...
    99+
    2020-01-07
    php
  • php正则替换table的实现方法
    这篇文章主要介绍了php正则替换table的实现方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php正则替换table的实现方法:首页使用php采集table表格数据;然...
    99+
    2023-06-15
  • php实现正则替换内容的方法
    这篇文章主要介绍“php实现正则替换内容的方法”,在日常操作中,相信很多人在php实现正则替换内容的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php实现正则替换内容的方法”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-30
  • php 正则怎么替换src
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php 正则怎么替换src?PHP-正则匹配文章图片标签src的内容并替换后端富文本编辑器中编辑的图片在各种端中显示由于不在同一服务器,图片访问路劲不同这个时候需要批...
    99+
    2022-10-25
  • php正则如何替换a标签href
    本文将为大家详细介绍“php正则如何替换a标签href”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php正则如何替换a标签href”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去...
    99+
    2023-06-14
  • php 正则函数怎么实现匹配替换
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑php 正则函数怎么实现匹配替换?php正则表达式的匹配与替换 只介绍两个与Perl兼容的正则表达式函数: 1.preg_match_all 函数执行正则表达式匹配与...
    99+
    2018-11-05
    php
  • javascript如何正则替换换行符
    这篇文章主要介绍“javascript如何正则替换换行符”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript如何正则替换换行符”文章能帮助大家解决问题...
    99+
    2022-10-19
  • JavaScript中替换所有匹配内容及正则替换如何实现
    小编给大家分享一下JavaScript中替换所有匹配内容及正则替换如何实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!由于JavaScript 的 replace 只能替换一次,因此另外...
    99+
    2022-10-19
  • nodejs如何使用正则实现字符串替换
    今天小编给大家分享一下nodejs如何使用正则实现字符串替换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。正则表达式的基本语...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作