1

これらの制御文字は有効な XML データを形成できないため、SOAP 応答で ASCII 制御文字を破棄する必要があります。

以下の正規表現を使用して、制御文字を破棄しました。

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

ただし、ASCII 制御文字 - DLE (データ リンク エスケープ) は、上記の REGEX では処理されません。

すべての ASCII 制御文字を破棄する正規表現について教えてください。

4

2 に答える 2

0

与えられたリンクを通過しました。

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は、この一連の有効な表現自体に含まれていると思います。したがって、交換されません。正規表現に慣れていません。私が間違っている場合は訂正してください。

于 2012-07-09T11:18:55.630 に答える
0

DLE は\x10、正規表現にありません。

また、 ですべての英数字も破棄しているようです\x20-\xD7FF。あれは正しいですか?

http://en.wikipedia.org/wiki/Control_characterを参照してください

于 2012-07-09T10:52:54.453 に答える