次の基準に一致する正規表現を作成するにはどうすればよいですか?
- 数字なし
- 特殊文字はありません
- 場所がない
文字列で
文字クラス[^]内の注意は、ほとんどの正規表現の実装(Perl、.NET、Ruby、Javascriptなど)に共通の否定演算子です。だから私はこのようにします:
[^\W\s\d]
または、必要なものだけを含めるだけで、別のアプローチを取ることができます。
[A-Za-z]
ここでの主な違いは、最初のものにはアンダースコアが含まれることです。それ、そしてそれはあなたが考えているのと同じ言葉で表現を書く方法を示しています。ただし、逆にすると、文字を除外するのではなく含めることを考えている場合、正規表現が読みやすくなることがあります。
どの特殊文字が不要かは私には完全にはわかりません。しかし、一方が他方よりもうまく機能する場合に備えて、両方のソリューションを書き留めました。
Perlでは、次のようになります。
$string !~ /[\d \W]/
もちろん、それはあなたの「特殊文字」の定義に依存します。\W
単語以外のすべての文字に一致します。単語文字は、任意の英数字とスペース文字です。
^ [^ 0-9 \ p{P}]$を試してください
var StringInputToClean = @"[:(M)?*a',\y<>&a#~%{}+.@\\ /27!;$+]";
var pattern = @"[^a-zA-Z0-9\s]";
string replacement = "";
var result = Regex.Replace(StringInputToClean, pattern, replacement);