簡體   English   中英

使用Regex清除字符串與Base64編碼的字符串

[英]Using a Regex to clean string versus Base64 Encoded string

我有一個擴展方法,該方法使用Regex.Replace在將用戶輸入的字符串中的無效字符添加到XML文檔之前將其清除。

正則表達式的目的是去除用戶從Microsoft Word粘貼文本並將其替換為空格時在輸入中偶爾出現的一些隨機的hi-ASCII字符:

    public static string CleanInput(this string inputString) {
        if (string.IsNullOrEmpty(inputString))
            return string.Empty;

        // Replace invalid characters with a space.
        return Regex.Replace(inputString, @"[^\w\.@-]", " ");
    }

現在,就像命運那樣,有人正在對包含base64編碼數據的字符串使用此擴展方法。

我相信的是,正則表達式將離開科技部的base64數據未經修改的,但是我認為這是可能會改變一些。

所以-明知\\w在正則表達式是匹配[A-Za-z0-9_]和Base64的有效范圍相同,這應該是正則表達式改變字符串或不是?

如果要更改字符串,為什么以及如何更改它,以便仍以常規的非編碼文本清除hi-ASCII垃圾,而不會破壞編碼的字符串。

Base64還使用+/=

您可以將這些添加到您的角色類中:

[^\w\.@+/=-]

請注意, -必須為最后,才能使其為文字連字符減號,而不是指定范圍。

根據Microsoft的說法\\w不一定與[A-Za-z0-9_]相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM