代码如下:
/**
* replace some string by callback function
*
*/
function callback_replace() {
$url = ''http://esfang.house.sina.com.cn'';
$str = '''';
$str = preg_replace ( ''/(?<=saction=")(?!http:)(.*?)(?="s)/e'', ''search($url, \1)'', $str );
echo $str;
}
function search($url, $match){
return $url . ''/'' . $match;
}
带断言的正则匹配
复制代码 代码如下:
代码如下 复制代码
$match = '''';
$str = ''xxxxxx.com.cn bold font
paragraph text
'';
preg_match_all ( ''/(?<=<(w{1})>).*(?=</1>)/'', $str, $match );
echo "匹配没有属性的HTML标签中的内容:";
print_r ( $match );
替换HTML源码中的地址
以下为引用的内容:
复制代码 代码如下:
$form_html = preg_replace ( ''/(?<=saction="|ssrc="|shref=")(?!http:|javascript)(.*?)(?="s)/e'', ''add_url($url, ''\1'')'', $form_html );
元字符
在上面的例子中,^ 、d 及 $ 等这些符号,代表了特定的匹配意义,我们称之为元字符,常用的元字符如下:
元字符 说明
. 匹配除换行符意外的任意字符
w 匹配字母或数字或下划线
s 匹配任意的空白符
d 匹配数字
b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
[x] 匹配x字符,如匹配字符串中的 a、b 和 c 字符
W w的反义,即匹配任意非字母,数字,下划线和汉字的字符
S s的反义,即匹配任意非空白符的字符
D d的反义,即匹配任意非数字的字符
B b的反义,即不是单词开头或结束的位置
[^x] 匹配除了 x 意外的任意字符,如 [^abc] 匹配除了 abc 这几个字母之外的任意字符