作者: 溪水清澈

举例如下:

$arr =array( 'abc', 'def', 'ghi' );

$brr =array( 'opq', 'rst', 'xyz' );

$pattern= '/:(\d+)/e';

$subject= '/:2/:1/:0/';

$str =preg_replace( $pattern, '$arr[$1] . $brr[$1]',$subject );

echo $str; //输出为: /ghixyz/defrst/abcopq/

e模式, 只限用于preg_replace()函数,

preg_replace( 搜索模式, 替换字符串, 搜索目标 );

e模式可以把

替换字符串(上例中的'$arr[$1]. $brr[$1]')

中的内容当成一个PHP表达式

(仅仅是一个, 也就是不能有分号)

(上例中是两个数组元素进行字符串拼接),

先进行反向引用替换

(上例中的$1, 替换成捕获到的数字,

结果就是(假设捕获到了数字2: '$arr[2] . $brr[2]'),

再进行PHP表达式替换

(把'$arr[2] . $brr[2]'中的数组元素替换成相应的值,

结果为: 'ghixyz')

最后替换掉 搜索目标 中相应的字符串(此处为把 :2 替换成 'ghixyz')

所以第一个匹配替换后的结果就是 '/ghixyz/:1/:0/'

第二替换结果是 '/ghixyz/defrst/:0/'

第三也就是最终结果是 '/ghixyz/de

e开头的正则 php,PHP正则表达式e模式相关推荐

  1. java 正则 懒惰_正则表达式懒惰模式

    在写BLOG练习程序的时候,考虑到用BBS直接输入可能会更加简洁些.但是如何转换又成了一个问题. 在群里问了问朋友,一致认同使用正则表达式最好.于是又翻起了那篇我觉得很好的正则表达式三十分钟入门,看了 ...

  2. python正则匹配_python 正则表达式详解

    正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...

  3. 正则环视 php,正则表达式基本知识(php)

    这里的知识点基本上是<正则指引>的读书笔记,只是每个知识点的示例代码用php来实现. 1. 字符组 字符组(Character Class)就是一组字符,在正则表达式中,它表示" ...

  4. python正则库_python 正则表达式第三方库 re的基本使用

    re模块简介: 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配,而re模块就是python中实现正则的模块 正则表达式简介: 非打印字符: 非打印字符也可以是正则表达 ...

  5. python匹配数字开头的内容_python使用正则表达式匹配字符串开头并打印示例

    python 正则表达式,怎样匹配以某个字符串开头,以str ="abcdefg123213qwe" 比如要匹配以abc开头,以qwe结尾,要怎样写呢?匹配以某个字符串开头,以某个 ...

  6. 正则表达式口诀及常用正则 。正则贪婪与非贪婪模式

    正则表达式口诀及常用正则 签于网上太多的介绍都是一篇凶悍的短文,边看边理解可以,帮助记忆不行.又受五笔字型字根表口诀"白手看头三二斤..."的启发,  试作"正则表达式助 ...

  7. js正则贪婪模式_C# 正则表达式贪婪模式案例

    案例一. 如 "acbacb"  正则  "a.*?b" 只会取到第一个"acb" 原本可以全部取到但加了限定符后,只会匹配尽可能少的字符 ...

  8. java 正则 实例_Java正则表达式实例详解

    创建正则表达式 你可以从比较简单的东西入手学习正则表达式.要想全面地掌握怎样构建正则表达式,可以去看JDK 文档的java.util.regex 的Pattern 类的文档. 字符 B 字符B \xh ...

  9. linux 正则查找email_Linux 正则表达式详解

    一.linux文本查找命令 在说linux正规表达式之前,还介绍下linux中查找文本文件常用的三个命令: 1.grep : 最早的文本匹配程序,使用POSIX定义的基本正则表达式(BRE)来匹配文本 ...

最新文章

  1. matepad和鸿蒙,爆料称华为MatePad 2系列平板有三个版本:预装鸿蒙OS
  2. BZOJ 1951: [Sdoi2010]古代猪文 [Lucas定理 中国剩余定理]
  3. Sql server锁,独占锁,共享锁,更新锁,乐观锁,悲观锁
  4. 【Redis3】基于Redis sentinel的自动failover主从复制
  5. linux怎么变成windows,如何把Ubuntu 18.04改造成Windows主题界面
  6. Object-C,NSSet,不可变集合
  7. CentOS 7.4 安装Teamviewer 14
  8. js中判断对象数组中是否存在某个对象,以及使用判断是否存在某个元素的indecOf()和find()方法
  9. Mat和IplImage
  10. 家园2简易地图编辑器
  11. html图片、背景音乐、滚动文字
  12. PBS常用基本命令------PBS入门
  13. 网络复现笔记-AdaptSegNet
  14. 大厂的安卓技术面试是酱紫的
  15. 当英文遇上汉语 就知道汉语有多强大了
  16. CobaltStrike优质学习资源
  17. 201612-3-炉石传说
  18. springboot+springsecurity+阿里云短信服务验证实现注册登录
  19. [开源名人访谈录] Philippe Gerum
  20. 金蝶ERP二次开发笔记(二)----ID相关处理

热门文章

  1. python 文件不存在时才能写入,读写模式xt
  2. 【编译原理】让我们来构建一个简单的解释器(Let’s Build A Simple Interpreter. Part 4.)(python/c/c++版)(笔记)
  3. 为什么 scanf( )(scanf_s)函数老要输入两次才行?
  4. Python中的正则表达式(基础)
  5. 欢迎使用CSDN-markdown
  6. Ubuntu16.04安装Xtion驱动并测试使用
  7. mysql 快速入门_MySql快速入门
  8. Logstash配置多个Input、Filter、Output
  9. mysql修改网络服务_MySql-Server 就要修改成允许 Web-Server 进行远程连接. 最后一步 需要使用ALTER USER … ACCOUNT UNLOCK语句进行解锁了:...
  10. html经典上中下三段的布局设计