我看了很多与此相关的SO帖子。我有一个格式错误的字符串,其中包含要删除的unicode字符。
string testString = "\0\u0001\0\0\0����\u0001\0\0\0\0\0\0\0\u0011\u0001\0\0\0\u0004\0\0\0\u0006\u0002\0\0\0\u0005The\u0006\u0003\0\0\0\u0017boy\u0006\u0004\0\0\0\tKicked\u0006\u0005\0\0\0\u0013the Ball\v";
我想要以下输出:
The boy kicked the Ball
我该如何实现?
我查看了以下内容(未成功):
答案 0 :(得分:1)
testString = Regex.Replace(testString, @"[\u0000-\u0008\u000A-\u001F\u0100-\uFFFF]", "");
或
testString = Regex.Replace(testString, @"[^\t\r\n -~]", "");
答案 1 :(得分:0)
尝试一下:
string s = "søme string";
s = Regex.Replace(s, @"[^\u0000-\u007F]+", string.Empty);
希望有帮助。
答案 2 :(得分:0)
为什么不尝试删除Unicode字符,而是提取所有ASCII字符:
var str = string.Join(" ",new Regex("[ -~]+").Matches(testString).Select(m=>m.Value));
答案 3 :(得分:0)
我使用此正则表达式过滤掉文件名中的错误字符。
Regex.Replace(directory, "[^a-zA-Z0-9\\:_\- ]", "")