首页 > 问答 > 正文
ubb文本编辑,preg_replace($pattern,$replace,$stirng);
2018-01-29 15:54:48
我看手册说\1和$1都一样的。
手册原话:replacement中可以包含后向引用\n或$n,语法上首选后者。每个这样的引用将被匹配到的第n个捕获子组捕获到的文本替换。 n可以是0-99,\0和$0代表完整的模式匹配文本。 捕获子组的序号计数方式为:代表捕获子组的左括号从左到右, 从1开始数。如果要在replacement 中使用反斜线,必须使用4个("\\",译注:因为这首先是php的字符串,经过转义后,是两个,再经过正则表达式引擎后才被认为是一个原文反斜线)。
如果说区别的话就是:preg_replace() 不知道我们想表达的是\11还是\1 1(第二个1是字符串1)。所以用${1}1可以让preg_replace()知道第一个1是反向引用,第二个1只是紧跟着反向引用后面原文的1。