2016-11-29 97 views
0

我試圖使用正則表達式來過濾給定字符串外的禁止HTML標記。是的,我知道,我應該使用解析器,但對於這個特定的問題,這種方法更快。正則表達式:邏輯取反捕獲組或

這個想法是將每個標記都列入白名單(例如<span>, <b>, </br>)並匹配被禁止的標記。到目前爲止,我想出了以下表達式:<\/?(?!(span|b|br)).\>

它適用於單個字符標記,如<a>,但像<label>這樣的東西不起作用。我真的很感謝一些幫助,在此先感謝。

+0

它應該使用任何標籤。使用'<\ /?(?!(label | span | br?)\ b)[^>] *>' –

+0

''多個字符可能你應該嘗試'<\ /?(?!(span | br?)\ b)[^>] *> '? –

回答

1

此正則表達式將得到標籤而忽略了跨度,BR,B開始和結束標記。

如果它們包含屬性,它甚至應該忽略來自白名單的那些。

<\/?(?!(?:span|br|b)(?: [^>]*)?>)[^>\/]*> 
+0

這工作和語法是非常方便在我的情況。非常感謝! – fabs

1
/<(?!(\/?span|\/?b|\/?br)).*?>/g 

enter image description here

+0

也適用!謝謝! – fabs