我需要放棄SOAP響應中的ASCII控制字符,因爲這些控制字符不允許形成有效的XML數據。正則表達式 - 不處理DLE
我已經使用以下正則表達式以丟棄控制字符,
@ 「[^ \ X09 \ X0A \ X0D \ x20- \ xD7FF \ xE000- \ xFFFD \ 10000倍-x10FFFF]」
但在上述REGEX中不處理ASCII控制字符 - DLE(數據鏈轉義)。
請幫助我正則表達式,這將放棄所有的ASCII控制字符。
我需要放棄SOAP響應中的ASCII控制字符,因爲這些控制字符不允許形成有效的XML數據。正則表達式 - 不處理DLE
我已經使用以下正則表達式以丟棄控制字符,
@ 「[^ \ X09 \ X0A \ X0D \ x20- \ xD7FF \ xE000- \ xFFFD \ 10000倍-x10FFFF]」
但在上述REGEX中不處理ASCII控制字符 - DLE(數據鏈轉義)。
請幫助我正則表達式,這將放棄所有的ASCII控制字符。
DLE是\x10
,這不在你的正則表達式中。
此外,您似乎也放棄所有字母數字字符\x20-\xD7FF
。那是對的嗎?
通給出的鏈接去了。
http://www.theplancollection.com/house-plan-related-articles/hexadecimal-value-invalid-character
作爲每鏈路,下面提到的正則表達式是對於該組有效的XML字符。
string re = @"[^\x09\x0A\x0D\x20-\xD7FF\xE000-\xFFFD\x10000-x10FFFF]";
return Regex.Replace(text, re, "");
我相信DLE來自這組有效表達式本身。因此它不會被取代。我不熟悉正則表達式。如果我錯了,請糾正我。
爲什麼Web服務首先發送控制字符? – leppie 2012-07-09 10:48:33