php – 正则表达式匹配1个HTML文件中的2个html标签
我有一个 HTML文件,其中包含以下内容: <img src="MATCH1" bla="blabla">
<something:else bla="blabla" bla="bla"><something:else2 something="something">
<something image="MATCH2" bla="abc"> 现在我需要一个正则表达式匹配MATCH1和MATCH2 此外
我有一个
HTML文件,其中包含以下内容:
<img src="MATCH1" bla="blabla">
<something:else bla="blabla" bla="bla"><something:else2 something="something">
<something image="MATCH2" bla="abc">
现在我需要一个正则表达式匹配MATCH1和MATCH2
此外,HTML包含多个这样的部分,因此它可以在HTML的1,2,3中x次.
当我说:
<img\s*src="(.*?)".*?<something\s*image="(.*?)"
它与它不匹配.我在这里错过了什么?
提前致谢!
解决方法
Regex does not always provide perfect result while parsing HTML.
我认为你应该使用HTML DOM Parser
例如:
// Create DOM from URL or file
$html = file_get_html('http://www.example.com/');
// OR Create a DOM object from a HTML file
$html = file_get_html('test.htm');
// Find all images
foreach($html->find('img') as $element)
echo $element->src . '<br>';
// Find all links
foreach($html->find('a') as $element)
echo $element->href . '<br>';
有过滤器可以获取具有特定属性的标记:
[attribute] Matches elements that have
the specified attribute.
[attribute=value] Matches elements
that have the specified attribute with
a certain value.
[attribute!=value] Matches elements
that don’t have the specified
attribute with a certain value.
[attribute^=value] Matches elements
that have the specified attribute and
it starts with a certain value.
[attribute$=value] Matches elements
that have the specified attribute and
it ends with a certain value.
[attribute*=value] Matches elements
that have the specified attribute and
it contains a certain value.
More Options
还有一些其他解析工具来解析HTML,如this answer中所述.
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。