C# 2.0 正则表达式-未处理

C# 2.0 正则表达式-未处理,c#-2.0,C# 2.0,我需要在SOAP响应中丢弃ASCII控制字符,因为这些控制字符不允许形成有效的XML数据 我使用了下面的正则表达式来丢弃控制字符 @“[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]” 但是ASCII控制字符-DLE(数据链路转义)在上述正则表达式中没有处理 请帮助我了解正则表达式,它将丢弃所有ASCII控制字符。DLE是\x10,不在正则表达式中 string re = @"[^\x09\x0A\x0D\x20-\xD7FF\xE00

我需要在SOAP响应中丢弃ASCII控制字符,因为这些控制字符不允许形成有效的XML数据

我使用了下面的正则表达式来丢弃控制字符

@“[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]”

但是ASCII控制字符-DLE(数据链路转义)在上述正则表达式中没有处理


请帮助我了解正则表达式,它将丢弃所有ASCII控制字符。

DLE是
\x10
,不在正则表达式中

string re = @"[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]";
return Regex.Replace(text, re, "");
此外,您似乎也在使用
\x20-\xD7FF
放弃所有字母数字字符。对吗


请参见

通过给定的链接查看

根据链接,下面提到的正则表达式用于一组有效的XML字符

string re = @"[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]";
return Regex.Replace(text, re, "");

我相信DLE是在这组有效的表达式中出现的。因此它没有被取代。我不熟悉正则表达式。如果我错了,请更正。

为什么web服务首先向您发送控制字符?