これがあなたの質問に対する正確な答えではないことは知っていますが、ここにあると役に立ちます:
有効なXML文字に一致する正規表現:
[\u0009\u000a\u000d\u0020-\uD7FF\uE000-\uFFFD]
したがって、無効な文字をXMLから削除するには、次のようにします。
// filters control characters but allows only properly-formed surrogate sequences
private static Regex _invalidXMLChars = new Regex(
@"(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F\uFEFF\uFFFE\uFFFF]",
RegexOptions.Compiled);
/// <summary>
/// removes any unusual unicode characters that can't be encoded into XML
/// </summary>
public static string RemoveInvalidXMLChars(string text)
{
if (string.IsNullOrEmpty(text)) return "";
return _invalidXMLChars.Replace(text, "");
}
私は私たちの常駐正規表現/XMLの天才、4,400以上の賛成の投稿の彼を持っていました、これをチェックしてください、そして彼はそれを承認しました。