❶ php 正则表达式 反向引用
所有正则表达式的反向引用应该都差不多的
就是你有可能需要用到你前面用括号包起来的捕获,这时候就要用反向引用
比方你要匹配两个一样的单词,就需要
([a-zA-Z]+)\1
前面[a-zA-Z]+是若干个字母组成的单词,括号括起来就是一个捕获,\1是指整个正则表达式的第一个捕获,也就是刚才匹配好的单词,这样就可以实现匹配两个相同的单词
在替换的时候也有同样的需求,比方你要把一段文字除了第一个单词之外的其他东西都删除,就需要str.replace("^([a-zA-Z]+).*$", "\1")
就是把所有文字替换成第一个匹配
❷ php数组[0],[1],[2]分别是什么意思
这个是正则表达式中的“反向引用”,用以匹配特定的“局部内容”,
在这里$match[2]是一个数组,数组的内容为"aaa" ,"cccc";
❸ PHP 正则表达式\\1 \\2是什么意思
正则表达式中
'\\1' 匹配的是 字符 '\1' 。 (因为 '\\' 匹配字符 '\' )
'\\2' 匹配的是 字符 '\2'
单独斜杠的 \1 , \2 就是反向引用了。
'\1' 匹配的是 所获取的第1个()匹配的引用。例如,'(\d)\1' 匹配两个连续数字字符。
'\2' 匹配的是 所获取的第2个()匹配的引用。
以此类推
❹ PHP中${}什么意思,比如${1}
我也正看《细说PHP》那本书,也看到了这部分,${1}让我费解好半天,我查资料查了一个下午终于搞明白是什么意思了,这是preg_replace()正则表达式函数中的一个功能,一开始我以为是表达式的量词,就如同A{1},指定A出现的次数,但说不通。在函数手册中终于找到了${1},但看了半天也没看懂那段中文,估计是程序翻译的英文,看不懂。上面写的是后向引用(估计是程序自动翻译造成的结果),网上也有说是反向引用或逆向引用,最后终于在字里行间看懂什么意思了。就是反向引用preg_replace()中参数的内容。
${1}就是引用第一个参数中的内容,${2}也就是引用第二个参数中的内容。以此类推。
preg_replace($pattern,$replacement,$subject)
${1}的意思就是引用$pattern参数中的内容。如:
preg_replace('大好人','卧底:${1}','我是大好人')
输出结果:我是卧底:大好人。
所以说${1}就是引用preg_replace的第一个参数内容的。