正则表达式-未处理DLE



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

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

@"[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x000-x10FFFF]"

但是ASCII控制字符-DLE(数据链接转义)在上面的REGEX中没有处理。

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

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

此外,您似乎也在使用x20-xD7FF丢弃所有字母数字字符。这是正确的吗?

请参阅http://en.wikipedia.org/wiki/Control_character

通过了给定的链接。

http://www.theplancollection.com/house-plan-related-articles/hexadecimal-value-invalid-character

根据链接,下面提到的regex用于一组有效的XML字符。

string re = @"[^x09x0Ax0Dx20-xD7FFxE000-xFFFDx10000-x10FFFF]";
return Regex.Replace(text, re, "");

我相信DLE本身就是一组有效的表达式。因此它没有被替换。我不熟悉正则表达式。如果我错了,请纠正我。

最新更新