2011-10-14 30 views
2

我正在尋找一個簡單的正則表達式(我認爲),這將返回所有沒有「名稱」屬性的HTML標籤,但我弱的正則表達式技能不會幫助我許多。正則表達式「不包含屬性」在html

找一個html標籤不是問題,但是「不包含」是。我根本不知道(當然,我沒有,但沒有一個能工作)。

任何線索?

+0

不要使用正則表達式!什麼是上下文(環境,語言)?您可以使用XPath或DOM API來查找這些元素。 –

回答

1

首先,你不應該爲這個任務使用正則表達式。一個HTML解析器肯定存在於你正在使用的任何語言中,並且更適合於此。

現在,如果您需要使用正則表達式出於任何原因,如果您的實現支持它,則可以使用negative lookahead。表達

<\w+(?![^>]*\bname\b) 

<\w+通過標識一個開口HTML標籤和匹配這僅在字符串「name」(由word boundaries封閉)不下一右括號之前出現。

看到它與RegExr行動。

這隻適用於行爲良好的HTML,並將其擴展爲尊重帶引號的字符串,javascript或註釋將不可能或非常非常難看。我提到了HTML解析器嗎? =)

+0

它就像一個魅力,謝謝!我會看看你的鏈接,以瞭解它是如何工作的。何和我正在使用正則表達式,因爲我只是在eclipse中進行搜索。也許我也可以找到更好的解決方案,但是,它的工作原理。 – nicompte

+0

@Nicompte:歡迎。 =)這個答案對你有幫助,考慮使用答案左側的圖標進行upvoting和/或接受它。 – Jens