詳細對照表請參考
Regular Expressions 正則表達式
單一替換
$str = 'Visit Microsoft!'; $pattern = '/microsoft/i'; echo preg_replace($pattern, 'powenko', $str);
輸出:
Visit powenko!
多部分替換
$string = 'The quick brown fox jumps over the lazy dog.'; $patterns = array(); $patterns[0] = '/quick/'; $patterns[1] = '/brown/'; $replacements = array('bear','black'); echo preg_replace($patterns, $replacements, $string);
輸出:
The bear black fox jumps over the lazy dog.
日期格式替換
$patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/', '/^\s*{(\w+)}\s*=/'); $replace = array ('\3/\4/\1\2', '$\1 ='); echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27');
輸出:
$startDate = 5/27/1999
去除空格
此示例從字符串中去除多餘的空格。
$str = 'a b c d'; echo "[".$str."]<br>"; $str = preg_replace('/\s\s+/', ' ', $str); echo "[".$str."]<br>";
輸出:
[a b c d]
[a-b-c-d]
$count = 0; echo preg_replace(array('/\d/', '/\s/'), '*', 'xp 4 to', -1 , $count); echo "<br>"; echo $count; //3
輸出:
xp***to
3
數字替換
$copy_date = "Copyright 1999"; $copy_date = preg_replace("([0-9]+)", "2000", $copy_date); print $copy_date;
輸出:
Copyright 2000
小寫英文替換
$copy_date = "Copyright 1999"; $copy_date = preg_replace("([a-z]+)", "powenko", $copy_date); print $copy_date;
輸出:
Cpowenko 1999
大小寫英文替換
$copy_date = "Copyright 1999"; $copy_date = preg_replace("([A-Z,a-z]+)", "powenko", $copy_date); print $copy_date;
輸出:
powenko 1999
大小寫英文和數字替換
$copy_date = "Copyright 1999"; $copy_date = preg_replace("([A-Z,a-z,0-9]+)", "powenko", $copy_date); print $copy_date;
輸出:
powenko powenko
$string = 'November 01, 2018'; $pattern = '/(\w+) (\d+), (\d+)/i'; $replacement = '$3年 ${1}月 $2日'; echo preg_replace($pattern, $replacement, $string);
輸出:
2018年 November月 01日
$subject = array('1', 'GFG', '2', 'Geeks', '3', 'GCET', 'Contribute', '4'); $pattern = array('/\d/', '/[a-z]/', '/[1a]/'); $replace = array('X:$0', 'Y:$0', 'Z:$0'); // Print Result return by function echo "preg_replace returns\n"; print_r(preg_replace($pattern, $replace, $subject));
輸出:
preg_replace returns
Array
(
[0] => X:Z:1
[1] => GFG
[2] => X:2
[3] => GY:eY:eY:kY:s
[4] => X:3
[5] => GCET
[6] => CY:oY:nY:tY:rY:iY:bY:uY:tY:e
[7] => X:4
)
$count = 0; // Display result after replace and count echo preg_replace(array('/\d/', '/\s/'), '*', 'Geeks 4 Geeks 5', 1, $count); echo "<br>" . $count . "<br>" ; echo preg_replace(array('/\d/', '/\s/'), '*', 'Geeks 4 Geeks 6', 2, $count); echo "<br>" . $count . "<br>" ; echo preg_replace(array('/\d/', '/\s/'), '*', 'Geeks 4 Geeks 6', -1, $count); echo "<br>" . $count . "<br>" ;
輸出:
Geeks** Geeks 5
2
Geeks***Geeks *
4
Geeks***Geeks**
5
找出id 並替換
$string =' <div id="myid">this has to be replaced</div> <p>here is something</p> <div id="any">any text not to be replaced</div>'; echo $string = preg_replace('/<div id=\"myid\">.*?<\/div>/','anything',$string);
輸出:
anything
here is something
any text not to be replaced
找出id 並替換 (內容有跳行)
$string =' <div id="myid">this has to be replaced</div> <div id="printhead"><p>ELECTRONICS 18-06-RBO-049-01 EMC TESTING DEPARTMENT </p> </div> '; echo $string = preg_replace('/<div id=\"printhead\">.*?<\/div>/s','anything',$string);
輸出:
this has to be replaced
anything
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出: