Если вы не хотите углубляться в Regex, вот пара других возможностей метода расширения.
Вы можете передать конкретные символы, которые хотите заменить:
static public string ReplaceCharsWithSpace(this string original, string chars)
{
var result = new StringBuilder();
foreach (var ch in original)
{
result.Append(chars.Contains(ch) ? ' ' : ch);
}
return result.ToString();
}
Или, если вы знаете, что хотите сохранить или удалить только определенные типы символов, вы можете использовать различные методы в char
, например IsLetter
, IsDigit
, IsPunctuation
и IsSymbol
:
static public string ReplaceNonLetterCharsWithSpace(this string original)
{
var result = new StringBuilder();
foreach (var ch in original)
{
result.Append(char.IsLetter(ch) ? ch : ' ');
}
return result.ToString();
}
Вот как вы можете использовать каждую из этих возможностей:
string s = "ab!2c";
s = s.ReplaceCharsWithSpace(@"!@#$%^*_+=/"); // s contains "ab c"
string t = "ab3*c";
t = t.ReplaceNonLetterCharsWithSpace(); // t contains "ab c"