如果行包含og标记,则正则表达式结果不匹配

时间:2018-04-06 10:48:06

标签: regex

如果匹配包含metaog:image

,如何排除匹配项?

我试过这个正则表达式:

(?!og\:image.*http:\/\/)((http:)(.*\.abc.com))

应匹配:

<% Response.Redirect("http://campaign.abc.com/en/") %>
<meta property="og:image" content="http://campaign.abc.com/aaa/cookie.jpg" />

但不是:

<a href="http://campaign.abc.com/en/"> abc.com </a>

1 个答案:

答案 0 :(得分:0)

假设“meta”和“og:image”位于标签“&lt;&gt;”内,您可以使用负面向前看。

这取决于你将使用什么应用程序来应用正则表达式,这是一个通过javascript的示例,它在一场比赛后停止:

正则表达式: /<(?!.*(meta|og:image)).*>/g

代码:

var subject = $('#content').val();

var myArray = /<(?!.*(meta|og:image)).*>/g.exec(subject);

console.log(myArray);
<!DOCTYPE html>
<html>
<body>

<textarea rows="4" cols="50" id="content">
 <meta property="og:image" content="http://campaign.abc.com/aaa/cookie.jpg" />
 <property="og:image" content="http://campaign.abc.com/aaa/cookie.jpg" />
 <% Response.Redirect("http://campaign.abc.com/en/") %>
  <meta property="og:image" content="http://campaign.abc.com/aaa/cookie.jpg" />
 <property="og:image" content="http://campaign.abc.com/aaa/cookie.jpg" />
</textarea>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</body>
</html>