目前我在php中的正则表达式主要使用的就是preg_replace()
。
容易犯的错误就是正则替换完不赋值,这样相当于该语句的执行结果并没有利用到,如此反复去看为什么没有实际反应就很滑稽。
正则替换函数具体参数为:preg_replace($pattern, $replacement, $string);
替换的时候有一个比较方便的操作,是按段匹配后的重新组合:
$html = preg_replace("/(<img .*?src=\")(.*?)(\".*?>)/is", "\${1}\${2}\${3}", $html);
据我理解就是前面的一个括号代表一个匹配参数,所以这样就可以进行很方便的重组或者替换或者插入一些内容的操作。
还有这个:
<?php
// 将文本中的年份增加一年.
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
// 回调函数
function next_year($matches)
{
// 通常: $matches[0]是完成的匹配
// $matches[1]是第一个捕获子组的匹配
// 以此类推
return $matches[1].($matches[2]+1);
}
echo preg_replace_callback(
"|(\d{2}/\d{2}/)(\d{4})|",
"next_year",
$text);
?>
在此记录一下
Comments | NOTHING