php 正则表达式替换

美国留学网站<img title="美国留学网站" alt="美国留学网站">
这段文字,怎么通过php的正则表达式函数 替换成
美国<a>留学</a>网站<img title="美国留学网站" alt="美国留学网站">
要求就是关键词在标签属性内的不加a标签。在标签以外的都加上。

<?php
@header ( 'Content-type: text/html;charset=GBK' );
$subject = '<img title="美国留学网站" alt="美国留学网站">美国留学网站<img title="美国留学网站" alt="美国留学网站">';
$pattern = "/(留学)(?![^\'\"><]*[\'\"])/";
$result = preg_replace ( $pattern, "<a>$1</a>", $subject );
echo $result;
?>

追问

"美国留学网站"美国留学网站
如果有引号,比如最开始那种 就不能添加标签,是不是加上title alt这样的限制更好一些?
还有 可不可以稍微讲解一下正则的含义?谢谢

追答$subject = '"美国留学网站"<img title="美国留学网站" alt="美国留学网站">美国留学网站<img title="美国留学网站" alt="美国留学网站">';
$pattern = "/(留学)[^><]*<(?![^\'\"><]*>)/";
$result = preg_replace ( $pattern, "<a>$1</a><", $subject );
echo $result;
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网