❶ 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的第一個參數內容的。