【发布时间】:2017-03-29 05:16:15
【问题描述】:
我想将ALL HTML special entities 之类的> < 替换为自定义字符串。
假设我有以下字符串:
string str = "<div>>hello<</div>";
和方法:
Method(string str, string replaceStr)
调用Method(str, ":)")后的结果应该是
<div>:)hello:)</div>
问题是特殊字符太多,我想知道最有效的方法是什么?
编辑:
String.Replace 不会做我的工作,使用 Regex 解析 HTML 并不是一个很好的方法。
由于不喜欢这个问题,可能没有任何干净的解决方案,因此我决定采用以下算法:
- 使用有效的 HTML 特殊字符创建 txt 文件(如
&para;) - 将文件解析为字符串数组
- 感谢 HtmLagilityPack 解析 HTML 并获取原始文本并替换所有实体。
我知道这对于大的 html 字符串并不是很有效,但它现在应该可以工作了。
【问题讨论】:
-
String.Replace()看起来很有希望。 -
我的意思是所有这些实体。我的错。我已经编辑了问题。
-
Regex.Replace(str, @"&\p{L}+;", ":)")?这可能会过火。您需要评估匹配的文本是否是真实实体。