正则表达式匹配特定的HTML标签

时间:2016-06-07 16:34:09

标签: html regex

我正在做的表格让我的用户发送包含图片链接的html代码。像这样:

<a href="http://linklocation.com" target="_blank"><img src="http://imagelocation.com" border="0"></a> 
<a href="http://linklocation.com" target="_blank"><img src="http://imagelocation.com" border="0"></a> 
<a href="http://linklocation.com" target="_blank"><img src="http://imagelocation.com" border="0"></a> 
<a href="http://linklocation.com" target="_blank"><img src="http://imagelocation.com" border="0"></a> 
<a href="http://linklocation.com" target="_blank"><img src="http://imagelocation.com" border="0" width="100px" height="100px"></a> <br>

现在,我正在尝试使用RegEx仅选择aimg个HTML标记,其中img可以是<img /><img> </img>或{{ 1}}。我现在还没有宽度,高度或其他设置,但它们也应该与RegEx一起出现。如果还有其他HTML标记,则不应该使用RegEx。

基本上如果有这样的HTML代码:

<img>

RegEx应该返回这些:

<a href="http://linklocation.com" target="_blank"><img src="http://imagelocation.com" border="0"></a> 
<a href="http://linklocation.com" target="_blank"><p>Hello world!</p></a> <script>Something</script> 
<a href="http://linklocation2.com" target="_blank"><img src="http://imagelocation2.com" border="0" width="200px" height="20px"></a> 

我希望你明白我在找什么。

1 个答案:

答案 0 :(得分:0)

您的RegExp解决方案是:

/<a\s*.*?><img\s*.*?<\/a>/

PHP示例:

$string = '<YOUR TEXT HERE>';
preg_match_all('#<a\s*.*?><img\s*.*?</a>#', $string, $matches);
print_r($matches[0]);

JavaScript示例:

var string = '<YOUR TEXT HERE>';
var matches = string.match(/<a\s*.*?><img\s*.*?<\/a>/g);
console.log(matches)