日期:2014-05-17  浏览次数:20354 次

求一个处理HTML的正则表达式
在用到HTML编辑器的时候,我希望只能使用指定的元素,而其他的全部不允许使用,比如:
string pattern = "<[^font|span|div|table|td|th|a|embed|img|p|ol|ul|li|blockquote|h1|h2|h3|h4|h5|h6|pre|hr|br|tbody|tr|strong|b|sub|sup|em|i|u|strike|s|del]";

上面的那些元素是可用的,如可以使用<font>、<a>、<b>等等,但是如果是“<”后面不是上面那些元素,那么系统就把“<”替换为“&lt;”,那么这个正则表达式替换怎么写呢?
return System.Text.RegularExpressions.Regex.Replace(input, "这里是正则表达式", "这里怎么写?", System.Text.RegularExpressions.RegexOptions.IgnoreCase);


------解决方案--------------------
string result = Regex.Replace("你的HTML代码", "(?is)<(?!font
------解决方案--------------------
span
------解决方案--------------------
div
------解决方案--------------------
table
------解决方案--------------------
td
------解决方案--------------------
th
------解决方案--------------------
a
------解决方案--------------------
embed
------解决方案--------------------
img
------解决方案--------------------
p
------解决方案--------------------
ol
------解决方案--------------------
ul
------解决方案--------------------
li
------解决方案--------------------
blockquote
------解决方案--------------------
h1
------解决方案--------------------
h2
------解决方案--------------------
h3
------解决方案--------------------
h4
------解决方案--------------------
h5
------解决方案--------------------
h6
------解决方案--------------------
pre
------解决方案--------------------
hr
------解决方案--------------------
br
------解决方案--------------------
tbody
------解决方案--------------------
tr
------解决方案--------------------
strong
------解决方案--------------------
b
------解决方案--------------------
sub
------解决方案--------------------
sup
------解决方案--------------------
em
------解决方案--------------------
i
------解决方案--------------------
u
------解决方案--------------------