900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > php正则表达式的反向引用有关问题

php正则表达式的反向引用有关问题

时间:2019-08-07 05:02:23

相关推荐

php正则表达式的反向引用有关问题

后端开发|php教程

nbsp,replacement,pattern,php,replace

后端开发-php教程

php正则表达式的反向引用问题?

理论上的问题哈:

挂机三国源码,ubuntu安装解压命令,tomcat是同步还是异步,mooc爬虫协议,php记账源代码,seo排名湖南岚鸿seolzw

反向引用子表达式我知道的是:

协同oa企业办公自动化源码,ubuntu版wine下载,爬虫queue的作用,php posix 下载,基础seo知识lzw

\1

表示引用第一个子表达式的值

h5完美运营12人牛牛源码,ubuntu 查找进程,tomcat是跨平台的吗,nas爬虫程序,php判断是否在数组内,分析seo爬虫lzw

后来无意看到有人这样引用: ${1} 就孤陋寡闻了,可以用,但是查不到相关文档说明,请高手教诲

分享到:

——解决方案——————–

$1 js 里就是这么用的

——解决方案——————–

/manual/zh/function.preg-replace.php 有说明:

用于替换的字符串或字符串数组。如果这个参数是一个字符串,并且pattern 是一个数组,那么所有的模式都使用这个字符串进行替换。如果pattern和replacement 都是数组,每个pattern使用replacement中对应的 元素进行替换。如果replacement中的元素比pattern中的少, 多出来的pattern使用空字符串进行替换。

replacement中可以包含后向引用\\n 或(php 4.0.4以上可用)$n,语法上首选后者。 每个 这样的引用将被匹配到的第n个捕获子组捕获到的文本替换。 n 可以是0-99,\\0和$0代表完整的模式匹配文本。 捕获子组的序号计数方式为:代表捕获子组的左括号从左到右, 从1开始数。如果要在replacement 中使用反斜线,必须使用4个(“\\\\”,译注:因为这首先是php的字符串,经过转义后,是两个,再经过 正则表达式引擎后才被认为是一个原文反斜线)。

当在替换模式下工作并且后向引用后面紧跟着需要是另外一个数字(比如:在一个匹配模式后紧接着增加一个原文数字), 不能使用\\1这样的语法来描述后向引用。比如, \\11将会使 preg_replace() 不能理解你希望的是一个\\1后向引用紧跟一个原文1,还是 一个\\11后向引用后面不跟任何东西。 这种情况下解决方案是使用\${1}1。 这创建了一个独立的$1后向引用, 一个独立的原文1。

当使用e修饰符时, 这个函数会转义一些字符(即:’、”、 \ 和 NULL) 然后进行后向引用替换。当这些完成后请确保后向引用解析完后没有单引号或 双引号引起的语法错误(比如: ‘strlen(\’$1\’)+strlen(“$2”)’)。确保符合PHP的 字符串语法,并且符合eval语法。因为在完成替换后, 引擎会将结果字符串作为php代码使用eval方式进行评估并将返回值作为最终参与替换的字符串。

——解决方案——————–

习惯用\来引用

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。