C# 用xml等价物替换html符号和的正则表达式

C# 用xml等价物替换html符号和的正则表达式,c#,regex,C#,Regex,考虑到符号AND出现在&>©或AT&T中,如何编写用于替换符号AND(&)的c#正则表达式 例如。。。Regex.Replace(“(\S)和(\S![^;])”,“$1和$2”) 要直接用“&;替换”&“”&;您不需要正则表达式,只需使用String.replace(或StringBuilder.replace) 但是,如果“&”后面没有“amp;“确实需要正则表达式和”“:1” 1使用零宽度断言的原因是在字符串末尾处理“&”。您可以使用正则表达式,如:“&(?)(amp)|(lt

考虑到符号AND出现在&>©或AT&T中,如何编写用于替换符号AND(&)的c#正则表达式

例如。。。Regex.Replace(“(\S)和(\S![^;])”,“$1和$2”)

要直接用
“&;
替换
”&“
”&;您不需要正则表达式,只需使用
String.replace
(或
StringBuilder.replace

但是,如果
“&”
后面没有
“amp;“
确实需要正则表达式和”“:1”


1使用零宽度断言的原因是在字符串末尾处理
“&”

您可以使用正则表达式,如:
“&(?)(amp)|(lt)|(apos)|(gt)|(quot);
我建议您只使用它:


为什么不直接进行html/xml编码呢?我正在为移动web构建一个xhtml解析器。我从cms获取html,然后将其解析为与xhtml兼容。你提出的解决方案会有帮助吗?确实会,看看我贴的答案我可以,但替换的问题是它会替换,例如,Boys&;女孩与&,导致它是男孩&;amp;女孩们,这不是我想要的。@Michael:我想可能是这样的。。。而是一种取代
&
而不是
amp
将始终这样做,即使您想显示
&在文档中。我很快就会复习。我建议您更新Q,使其更具体。好的,现在明白了,您可以替换&;到某些特定的字符/字符串,如{theampchar},然后替换&to&;和{theampchar}to&;再说一遍。但是像@baalazamon这样的其他转义字符怎么办?这是不可能的,因为你所做的只是匹配一个符号,后面跟任何不是
a
m
p
我已经修复了它,它将对amp、lt和skip等分组词执行负前瞻(?!)运算需要的正则表达式将过于复杂,因为我们忘记了案例
和#00
,所以当使用htmlencode方法时,我的网页上会显示什么:MoMo\10:Mobility的未来观
好吧,那是因为你用html编码了它?不要对html进行编码
var result = Regex.Replace(input, "&(?!amp;)", "&");
System.Web.HttpUtility.HtmlEncode()