php中的正規取代使用
preg_replace 介紹
preg_replace — 執行一個正規表示式的搜尋與替換
preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) : mixed
搜尋subject中符合pattern的部分, 以replacement替換。
preg_replace 參數
pattern
要搜尋的模式。可以使一個字串或字串數組。
可以使用一些PCRE修飾因子。
replacement
用於替換的字串或字串陣列。如果這個參數是一個字串,並且pattern 是一個數組,那麼所有的模式都使用這個字串進行替換。如果pattern和replacement 都是數組,每個pattern使用replacement中對應的 元素進行替換。如果replacement中的元素比pattern中的少, 多出來的pattern使用空字串進行替換。
replacement中可以包含後向引用\\n 或$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方式進行評估並將返回值作為最終參與替換的字串。
subject
要進行搜尋和替換的字符字串或字串數組。
如果subject是一個數組,搜尋和替換回在subject 的每一個元素上進行, 並且返回值也會是一個數組。
limit
每個模式在每個subject上進行替換的最大次數。預設是-1(無限)。
count
如果指定,將會被填入完成的替換次數。
preg_replace 回傳值
如果subject是一個數組, preg_replace()傳回一個數組,其他情況下傳回一個字串。
#匹配被查找到,替換後的subject被返回,其他情況下返回沒有改變的subject。如果發生錯誤,返回NULL 。
以上是php中的如何使用正規替換的詳細內容。更多資訊請關注PHP中文網其他相關文章!