我想将此 javascript regex 转换为 php regex。我已经测试了代码可以运行。
<img.*?src='(?!http[s]*:\/\/img.[a-zA-Z0-9]*.test\/)(.*?)'
<img alt='' src='http://img.dev.teeeest/images/UID' />
<img alt='' src='https://img.deaaav.test.com/images/UID/' />
<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' />
它将选择其中的前三个。我希望 php regex 将具有相同的结果。
$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\/[^"|^\']*?)[\'|\"][^>]*?>/isU', $body, $img_array);
$img_array = array_unique($img_array[1]);
echo "<pre>";
print_r($img_array);
echo "</pre>";
我使用网站测试https://regex101.com/ 我尝试在 http[s] 之前使用添加 ^。像这样
<img[^>]*?src=[\'|\"](^http[s]*:\/\/img.[a-zA-Z0-9]*.test\/)[^"|^\']*?[\'|\"][^>]*?>
我想否定什么有这个
http[s]*:\/\/img.[a-zA-Z0-9]*.test\/
蛊毒传说
米脂