2015-08-15 59 views
1

我试图设计一段时间的正则表达式,它检查某个特定的属性是否不存在于HTML标记中。正则表达式中没有唯一的HTML属性

我的方法:

  1. 寻找HTML标签本身
  2. 在标签中,所有字母都是允许的,除了那些作为特别attrite开始
  3. 检查是否因此排除信似乎只没有排除标签的开始

具体来说:查找所有没有属性“nosecure”的img标签。

这是我目前的状态: https://regex101.com/r/dR7oQ8/2

(如果该链接有问题,这是我目前的正则表达式:/<img([^n]*(?!nosecure))*>/g),但是

看来,我没有正确地否定了一部分,现在希望有人可以在这里帮助我。

问候, 克里斯托弗

回答

2

更改式断言像下面。

<img\b(?![^>]*\bnosecure\b)[^>]*> 
  • (?![^>]*nosecure)负先行断言,没有一个字符串nosecure存在img标签内。

DEMO

+0

哇,这是一个非常快的答案。谢谢:)理解的一个问题:如果我想确定,那么'nosecure'也被允许在源矿或其他标签中。所以只有标签键'nosecure'被禁止,但不是值内的用法? '\ bnosecure \ b'会帮助我一点,但是有没有一种优雅的方式可以做到这一点? https://regex101.com/r/dR7oQ8/4 – christopher2007