繁体   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