无法使用正则表达式删除不可见字符
本文关键字:字符 删除 正则表达式 | 更新日期: 2023-09-27 17:54:25
我想从字符串中删除任何不可见的字符,只保留空格&0x20-0x7F中的任何字符,我用这个:Regex.Replace(QueryString, @"[^'s'x20-'x7F]", "");
但是它不起作用
QueryString
有一个字符0xA0,在此之后,该字符仍然存在于QueryString
中。
我不知道为什么这个工作失败了?
0xA0
是不间断的空格字符-因此它与's
匹配。与其使用's
,不如将其展开到您想要包含的空白字符列表中。
我认为您更愿意使用StringBuilder来处理这样的字符串。
StringBuilder sb = new StringBuilder(str.Length);
foreach(char ch in str)
{
if (0x20 <= ch && ch <= 0x7F)
{
sb.Append(ch)
}
}
string result = sb.ToString();