【发布时间】:2020-12-12 17:33:38
【问题描述】:
假设我有以下字符串:
string s = "hello a & b, <hello world >"
我想用 "&amp;" 替换 "&"(b/w a 和 b)
所以,如果我使用
s.replace("&", "&");
它还将替换与&lt; 和&gt; 关联的“&”。
有什么方法可以只替换 a 和 b 之间的“&”吗?
【问题讨论】:
-
与所有字符串编码的情况一样,您应该知道原始字符串采用什么格式来实现正确的功能。例如,原始字符串是“原始字符串”还是“带有 HTML 实体的字符串”? answer by Karan 仅适用于后者。
-
Karan 的回答很好,但您首先应该尽量避免这种情况。你是如何得到一个混合了 html 实体和未编码 & 符号的字符串的?您能否在与 < 结合之前对 & 进行编码?
-
@ComFreek:与 SO 上的许多编码问题一样,我认为您的问题的答案是:“原始字符串是 HTML 编码和非 HTML 编码字符串的任意组合由不知道自己在做什么的人创建,我的任务是在稍后阶段“修复它”。我知道这在一般情况下是不可能的,所以请提供适用于大多数情况的 hack 和我会祈祷最终巧妙地打破它的边缘案例只有在我离开公司后才会出现”。
标签: c#