$str='<div>接口了发的撒了http://www.aaa.com/software_zone/2013/0903/2174529.shtml看见了飞洒<img src="http://www.aaa.com/itask_static/expression/t4/appstyle/expression/ext/normal/0b/tootha_org.gif" class="img_emotion"></div>';
需求是只匹配网址而不匹配图片的网址
preg_replace("/((?<!\")http:\/\/[A-Za-z0-9\.\-]+(\/[A-Za-z0-9\?\&\=;\+!'\(\)\*\-\._~%]*)*)/", '<a>\1</a>', $str)
用到了
- 引用 - 使用
()
来标识需要引用的内容,并用\1
引用. - 断言 -
(?<!\")
匹配前面不是"
的内容.