2 回答

TA贡献1895条经验 获得超3个赞
你的 javascript 正则表达式工作正常;您只需要将s标志更改为m:
$body = "<img alt='' src='http://img.dev.teeeest/images/UID' />
<img alt='' src='https://img.deaaav.test.com/images/UID.ux/' />
<img alt='' src='http://api.com/images/UID' />
<img alt='' src='http://img.deaSassav.test/images/UID' />
<img alt='' src='https://img.dev.test/images/UID' />";
$body = stripslashes($body);
$img_array = array();
preg_match_all("/<img.*?src='(?!http[s]*:\/\/img.[a-zA-Z0-9]*.test\/)(.*?)/imU", $body, $img_array);
echo "<pre>";
print_r($img_array[0]);
echo "</pre>";
输出:
<pre>Array
(
[0] => <img alt='' src='http://img.dev.teeeest/images/UID' />
[1] => <img alt='' src='https://img.deaaav.test.com/images/UID.ux/' />
[2] => <img alt='' src='http://api.com/images/UID' />
)
</pre>

TA贡献1836条经验 获得超3个赞
这个表达式也可能有效:
<img\b.*?\bsrc=['"](?!https?:\/\/img\.[a-z0-9]*\.test\/)([^'"]*)
如果你想探索/简化/修改表达式,它已在regex101.com 的右上角面板中进行了 解释。如果您愿意,您还可以在此链接中观看它如何与某些示例输入匹配。
没有找到匹配的内容?试试慕课网站内搜索吧
- 2 回答
- 0 关注
- 187 浏览
添加回答
举报