preg_replace

PHP中用來執行正則表達式的匹配以及替換的函式。可以返回一個正則表達式轉換後的值。

基本介紹

  • 中文名:preg_replace
  • 外文名:preg_replace
  • 功能:用來執行正則表達式
  • 屬性:匹配以及替換的函式
  • 特點:可以返回一個正則表達式
preg_replace,說明,具體內容,例子,例1 替換數個值,例2 逆向引用,例3 使用索引數組,例4 使用/e修正符,例5 將HTML轉換成文本,

preg_replace

說明

preg_replace (PHP3 >= 3.0.9, PHP 4, PHP 5)
preg_replace
preg_replace -- 執行正則表達式的搜尋和替換

具體內容

mixed preg_replace( mixed pattern, mixed replacement, mixed subject [, int limit] )
在 subject 中搜尋 pattern 模式的匹配項並替換為 replacement。如果指定了 limit,則僅替換 limit 個匹配,如果省略 limit 或者其值為 -1,則所有的匹配項都會被替換。
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 只是單純的文字。

例子

例1 替換數個值

<?php
$patterns = array ("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/", "/^\s*{(\w+)}\s*=/");
$replace = array ("\\3/\\4/\\1\\2", "$\\1 =");
print preg_replace ($patterns, $replace, "{startDate} = 1999-5-27");
?>
本例將輸出:
$startDate = 5/27/1999

例2 逆向引用

逆向引用後面緊接著數字的用法
逆向引用後面緊接著數字的用法逆向引用後面緊接著數字的用法
<?php
$string = "April 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";

相關詞條

熱門詞條

聯絡我們