正則表達式的搜索與替換在某些方面具有重要用途,比如調整目標字符串的格式,改變目標字符串中匹配字符串的順序等。
例如我們可以簡單的調整字符串的日期格式:
$string = 'April 15, 2014'; $pattern = '/(\w+) (\d+), (\d+)/i'; $replacement = '$3, ${1} $2'; echo preg_replace($pattern, $replacement, $string); //結果為:2014, April 15
其中${1}與$1的寫法是等效的,表示第一個匹配的字串,$2代表第二個匹配的。
通過復雜的模式,我們可以更加精確的替換目標字符串的內容。
$patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/', '/^\s*{(\w+)}\s*=/'); $replace = array ('\3/\4/\1\2', '$\1 =');//\3等效于$3,\4等效于$4,依次類推 echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27'); //結果為:$startDate = 5/27/1999 //詳細解釋下結果:(19|20)表示取19或者20中任意一個數字,(\d{2})表示兩個數字,(\d{1,2})表示1個或2個數字,(\d{1,2})表示1個或2個數字。^\s*{(\w+)}\s*=表示以任意空格開頭的,并且包含在{}中的字符,并且以任意空格結尾的,最后有個=號的。
用正則替換來去掉多余的空格與字符:
$str = 'one two'; $str = preg_replace('/\s+/', ' ', $str); echo $str; // 結果改變為'one two'
將目標字符串$str中的文件名替換后增加em標簽,例如index.php要替換成<em>index.php</em>。
參考代碼:
$str = '主要有以下幾個文件:index.php, style.css, common.js'; $p = '/\w+\.\w+/i'; $str = preg_replace($p, '<em>$0</em>', $str); echo $str;
請驗證,完成請求
由于請求次數過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報