次の基準で特殊文字を削除する正規表現を作成したいと思います。
@
、&
、'
、(
、)
、<
、>
または#
空白を正常に削除する次の正規表現を作成しました。
string username = Regex.Replace(_username, @"\s+", "");
ただし、上記の文字を削除できるように、アップグレード/変更したいと思います。
誰かがこれを手伝ってくれますか?
string username = Regex.Replace(_username, @"(\s+|@|&|'|\(|\)|<|>|#)", "");
文字セット[charsgohere]
を使用します
string removableChars = Regex.Escape(@"@&'()<>#");
string pattern = "[" + removableChars + "]";
string username = Regex.Replace(username, pattern, "");
正規表現の代わりにLinqを使用することをお勧めします。
string source = ...
string result = string.Concat(source
.Where(c => !char.IsWhiteSpace(c) &&
c != '(' && c != ')' ...));
スキップするmany文字がある場合は、コレクションに整理できます。
HashSet<char> skip = new HashSet<char>() {
'(', ')', ...
};
...
string result = string.Concat(source
.Where(c => !char.IsWhiteSpace(c) && !skip.Contains(c)));
RegexのReplace関数を簡単に使用できます。
string a = "ash&#<>fg fd";
a= Regex.Replace(a, "[@&'(\\s)<>#]","");