詳細對照表請參考
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
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出:
輸出: