3
這個偉大的工程從字符串/ DB文本類型字段刪除所有的HTML,我怎麼能忽略休息標籤:刪除斷行標記的正則表達式
update hazHRA set identityRisk=dbo.RegexReplace('<(?:[^>''"]*|([''"]).*?\1)*>',
'',identityRisk,1,1);
我希望保持
<br>
只有
這個偉大的工程從字符串/ DB文本類型字段刪除所有的HTML,我怎麼能忽略休息標籤:刪除斷行標記的正則表達式
update hazHRA set identityRisk=dbo.RegexReplace('<(?:[^>''"]*|([''"]).*?\1)*>',
'',identityRisk,1,1);
我希望保持
<br>
只有
這應該做的工作:
(?i)<(?:(?!br>|br/>)[^>'"]*|(['"]).*?\1)*>
(?i):不區分大小寫。
(?!br />):消極向前。
如果能在向前看符號使用量詞,你可以使用這個:
(?i)<(?:(?!br\s*>|br\s*/>)[^>'"]*|(['"]).*?\1)*>
這將確保不帶空格匹配<br >
。
我還建議在不區分大小寫的情況下添加「BR」的任何奇怪組合。還要在'br'和括號之間添加通配符,以處理用戶可以在HTML標記中添加的任意數量的空格,參見[here](http://rubular.com/r/ywhcBEfFdn)。 – Walls
@Walls我使用PHP PCRE preg_replace函數對它進行了測試,問題在於它不能使用量詞的前瞻。我找不到一個在線SQL正則表達式測試器,所以我不確定它是否適用於SQL? – HamZa
我看到你傾向於SQL的問題,我通常只是在像Rubular這樣的常規在線正則表達式測試regex類型的東西。如果不能使用量詞是有道理的,但我認爲不區分大小寫會使OP的正則表達式更強。 – Walls