6
回答
帮忙写一个匹配img的正则表达式
【腾讯云】学生服务器套餐10元/月 >>>   
1.<img src="images/bottom.jpg" alt="bottom" width="620" height="324"  />
2.<img src="images/bottom.jpg" alt="hello.jpg" width="620" height="324"  />
如上 我相匹配一下HTML中的 img符合一下四个条件的
1.alt的名称是英文
2.不是图片名称的(如1)
3.alt不等于"hello"的
4.alt 不为空


请问可以实现么,如果可以实现请问如何写呢?(我是想在dreamweaver里全局搜索,所以需要使用在搜索里可以用的正则表达式)
举报
JennerTien
发帖于6年前 6回/1K+阅
共有6个答案 最后回答: 5年前

第2个条件单纯一个正则表达式解决不了,需要用脚本来解决。

1,3,4条件可以用正则解决。

--- 共有 2 条评论 ---
xinzaibing你还是用代码解决吧,一个正则解决够呛 一次读取一行代码出来, 1.过滤出图片名称和alt后的字符串进行比较,符合条件进行第2步 2.监测alt的字符串是否等于hello 3.用正则过滤alt为英文和不为空的条件 其实1条件限制alt的名称是英文就说明肯定不会为空了 6年前 回复
JennerTien如果使用php的话,可否提供一个思路 6年前 回复
我来,正则肯定可以搞定!
--- 共有 1 条评论 ---
JennerTien如果可以的话 那太谢谢了, img的路径有可能是不同的 比如../images/a/图片名.jpg(或者gif) 6年前 回复
<?php

$str1 = '<img src="images/bottom.jpg" alt="bottom" width="620" />';
$str2 = '<img src="images/bottom.jpg" alt="464564" height="324" />';
$str3 = '<img src="images/bottom.jpg" alt="hello" height="324" />';
$str4 = '<img src="images/bottom.jpg" alt="bottom.jpg" width="620" />';

preg_match('/<img.*alt=(?="(?!hello)[a-zA-Z]+").*\/>/', $str1, $array1);
preg_match('/<img.*alt=(?="(?!hello)[a-zA-Z]+").*\/>/', $str2, $array2);
preg_match('/<img.*alt=(?="(?!hello)[a-zA-Z]+").*\/>/', $str3, $array3);
preg_match('/<img.*alt=(?="(?!hello)[a-zA-Z]+").*\/>/', $str4, $array4);

echo $array1[0];
echo $array2[0];
echo $array3[0];
echo $array4[0];

?>
--- 共有 2 条评论 ---
皮总回复 @田振宇 : 判断相同,这个是正则做的事情么? 6年前 回复
JennerTien这里似乎并没有判断是否相同啊? 6年前 回复
顶部