gpt4 book ai didi

php - 正则表达式匹配具有特定属性类的 img 标签

转载 作者:行者123 更新时间:2023-11-30 06:03:39 25 4
gpt4 key购买 nike

我很长一段时间都在为这个正则表达式而苦苦挣扎,但我找不到任何解决办法。我使用基于 javascript 的工具来测试和编写表达式。放入php页面再用preg匹配结果不一样。

/(<img\b src=)"([^"]+)"(.* class=".*colorme(?:.|[^"]*)"[^>]+>)/

而要测试的例子在这里,第一个应该是不匹配的。这一切都适用于 javascript,但不适用于 php,只有类 class="colorme"将被匹配。我错过了什么吗?

<img src="http://test.jpg" class="then" border="0" width="123" height="83">

<img src="test.jpg" border="0" alt="well watch picture" alt="tersts" class="really colorme" width="228" height="138">

<img src="test.jpeg" class="colorme then" border="0" width="123" height="83">

<img src="test" border="0" width="123" height="83" class="pic colorme then" with="me">

<img src="tests" border="0" class="colorme" width="123" height="83">

最佳答案

使用 DOM 且没有花哨的表达式...

<?php 
$doc =<<<DEMO
<img src="http://test.jpg" class="then" border="0" width="123" height="83">
<img src="test.jpg" border="0" alt="well watch picture" alt="tersts" class="really colorme" width="228" height="138">
<img src="test.jpeg" class="colorme then" border="0" width="123" height="83">
<img src="test" border="0" width="123" height="83" class="pic colorme then" with="me">
<img src="tests" border="0" class="colorme" width="123" height="83">
DEMO;

$xml = new DOMDocument();
//Or you could use for locally saved files
//@$xml->loadHTMLFile('savedfile.html');
@$xml->loadHTML($doc);
foreach($xml->getElementsByTagName('img') as $image) {
if(strstr($image->getAttribute('class'),'colorme')==true){
$images[] = $image->getAttribute('src');
}
}
print_r($images);
?>

输出:

Array (
[0] => test.jpg
[1] => test.jpeg
[2] => test
[3] => tests )

关于php - 正则表达式匹配具有特定属性类的 img 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6651303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com