Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用空格替换所有不受支持的字符_C#_.net_String - Fatal编程技术网

C# 用空格替换所有不受支持的字符

C# 用空格替换所有不受支持的字符,c#,.net,string,C#,.net,String,我需要完成以下任务。我有允许的字符列表(这是QB) 我知道如何使用正则表达式查找坏字符,但这就像是倒退,我不需要查看匹配项。我需要看看哪些不匹配,只替换那些 string Sanitize(string input) { return new string(input.Select(x => goodChars.Contains(x)?x:' ').ToArray()); } 正如VC74所建议的,最好使用goodChars的哈希集,而不是字符串,以便更快地查找 const st

我需要完成以下任务。我有允许的字符列表(这是QB)

我知道如何使用正则表达式查找坏字符,但这就像是倒退,我不需要查看匹配项。我需要看看哪些不匹配,只替换那些

string Sanitize(string input)
{
    return new string(input.Select(x => goodChars.Contains(x)?x:' ').ToArray());
}
正如VC74所建议的,最好使用goodChars的
哈希集,而不是字符串,以便更快地查找

const string pattern = "[^A-Za-z~_-]";

var regex = new Regex(pattern);
string sanitized = regex.Replace(input, " ");


请注意,如果经常使用此代码,则可以将正则表达式存储在静态成员中,以避免每次调用都重新创建(和重新编译)。

您看过吗?甚至像模式一样残忍的东西?许多字符可以被字符类替换以使模式更小,例如
\d
可以将
0
替换为
9
A-Za-z
将涵盖英文字母您想对“坏”字符做什么?完全移除它们<代码>正则表达式.Replace(输入,模式“”)
将work@PanagiotisKanavos//TODO:需要…将“goodChars”中未包含的所有字符替换为空格“@vc74是的,当然,我实际上是在关注我的代码部分。但在回答中提到这一点很好。
const string pattern = "[^A-Za-z~_-]";

var regex = new Regex(pattern);
string sanitized = regex.Replace(input, " ");