猿问

替换字符串中不可打印的字符

我正在创建一个逻辑来用空格替换字符串中不可打印的字符,只是我很困惑它是否是相同的 ASCII 字符和 Unicode 字符,我已经回顾了如何使用 regex.replace 函数,但我没有'不明白如何验证字符串中的字符是否在以下条件之间。

这是我得到的要求,用空格替换:

  • 值为 0 到 31 的所有 ASCII 字符。

  • 值为 127、129、141、143、144 和 157 的 Unicode 字符

我试过这个(我相信这适用于 ASCII 字符)但是我可以处理 unicode 字符吗?

newPartNum = Regex.Replace(PartNum, @"[^\u0020-\u007E]", " ");

任何帮助将不胜感激。


慕村9548890
浏览 217回答 2
2回答

达令说

看一下Char 结构体类型的IsControl 方法。如果没有其他原因,它会谈论控制字符的范围。此外,在正则表达式中使用一系列有效字符当然是可行的,但在处理 Unicode 字符时可能会变得混乱,因为范围很大。寻找您需要替换的字符可能会更好。再次查看 Char.IsControl 方法以获取详细信息。
随时随地看视频慕课网APP
我要回答