【发布时间】:2018-08-24 18:10:49
【问题描述】:
我正在尝试从下面的字符串中删除标记p>
string name = results[i].ToString();
var b = Regex.Replace(name, "<.*?>",string.Empty);
字符串name 看起来像&lt;div class="ExternalClassA6E"&gt;&lt;p&gt;&lt;span&gt;GET6&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
当我调试时,我在 b 中看不到任何额外的 spl 字符。但是当在应用程序中看到它在变量 b 的前面运行 ? 时,比如 ?GET6。这里的标记有什么特别之处吗?
【问题讨论】:
-
您已经发布了带有 html 实体的字符串值。该正则表达式永远不会匹配这样的 html 编码字符串。因此,您要么需要在正则表达式中使用实体,要么您的输入看起来不同。另一方面 ? micht 指向字符编码的差异。
-
是的,?或 � 向我们的用户表明我们错误地处理了他们的数据并对其进行了损坏。你抓住它真是太好了。问题是缺乏沟通或无法控制应该使用哪种字符编码来阅读文本。它必须是用于编写它的字符编码。