2015-08-15 80 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

相關問題