正则表达式之给HTML的给 图片 加域名


js 案例 ,给图片加域名,正则表达式匹配

sDetail = '<img src="/userfiles/image/XB20180509H/001.gif">';

$preg = '#(src|href|url)(=[\'|\"]|\()((?!http:\/\/)[\/]?(.*?)\.(jpg|png|gif|jpeg))([\'|\"]|\))#i';

$zhenze = preg_replace($preg, "$1$2" . WEB_URL_IMG1 . "$3$6", $sDetail);

结果: <img src="http://img1.b.pop-fashion.com/userfiles/image/XB20180509H/001.gif">


解释:#( src|href|url ) ( =[\'|\"]|\( ). WEB_URL_IMG1 . ( (?!http:\/\/)[\/]?(.*?)\.( jpg|png|gif|jpeg ) ) ([\'|\"]| \) )#i

$1 $2 以(开头 $3 $4 $5 $6 $7 以)开头

小技巧:$1,$2,$3...  以 () 为 第几个。  看 () 的 ( 数数

1,## 相当于 // 在里面正则的主体

2, i 不区分大小写

3, ( src|href|url) 正则匹配其中一个

4,\( ==> 【以 ( 开头 】; \) ==> 【 以 ) 结尾 】

==> 这是为了css中的背景属性,如:background: #00FF00 【url(bgimage.gif)】 no-repeat;

5,[\'|\"] 以 ' 或者 " 包裹数据 ; | ==> 或者

6,\/\/ ==> //

7, @1,非 ==> ( ?! ) ; @2,[^] ===>除......以外 ; @3 /^..... ==>以.....开头

8, [\/] ==> /

9, \ ==> 转义

10,以() 区分 $1,$2.....

11, . ==> 任意字符

.?的意思是尽可能少的匹配

(.?)设置分组,如果替换,获取,可以用$1参数代替

效果如下:

posted @ 2018-07-24 15:48  古韵  阅读(520)  评论(0)    收藏  举报