无法使用正则表达式删除不可见字符
我想从字符串中删除任何不可见的字符,只保留空格和字符。 0x20-0x7F 之间的任何字符, 我用这个:Regex.Replace(QueryString, @"[^\s\x20-\x7F]", "");
但是它不起作用
QueryString
有一个字符0xA0,之后该字符仍然存在于QueryString
中。
我不知道为什么这不起作用?
I want to remove any invisible chars from a string, only keep spaces & any chars from 0x20-0x7F,
I use this: Regex.Replace(QueryString, @"[^\s\x20-\x7F]", "");
However it does not work
QueryString
has a char 0xA0, after that, the char still exists in QueryString
.
I am not sure why this failed to work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
0xA0
是不间断空格字符 - 因此它与\s
匹配。不要使用\s
,而是将其展开到要包含的空白字符列表中。0xA0
is the non-breaking space character - and as such it's matched with\s
. Rather than using\s
, expand this out into the list of whitespace characters you want to include.我认为你宁愿使用 StringBuilder 来处理这样的字符串。
I think you would rather use StringBuilder to process such strings.