すべての英数字 (大文字と小文字の両方、および数字) を許可するだけでなく、スペース、スラッシュ (/)、ダッシュ (-)、プラス (+) も許可する正規表現を機能させようとしていますか?
私はリドルで遊んでいます: http://refiddle.com/gqrしかし、これまでのところ成功していません。
違いがあるかどうかはわかりませんが、C#でこれをやろうとしていますか?
すべての英数字 (大文字と小文字の両方、および数字) を許可するだけでなく、スペース、スラッシュ (/)、ダッシュ (-)、プラス (+) も許可する正規表現を機能させようとしていますか?
私はリドルで遊んでいます: http://refiddle.com/gqrしかし、これまでのところ成功していません。
違いがあるかどうかはわかりませんが、C#でこれをやろうとしていますか?
それらのみを許可する場合は、アンカー^
と$
.
^[a-zA-Z0-9_\s\+\-\/]+$
^ ^^
これはあなたの正規表現で、2 行目に示されているように文字を追加しました。1 つ以上の文字 ( の場合は 0 以上) を許可するために、最後の+
orを忘れないでください。そうしないと、正規表現は.*
*
.Matches
次のように、クラス全体[A-Za-z0-9_]
を 1に置き換えることもできます。\w
^[\w\s\+\-\/]+$
編集:
実際には、慎重に配置することで、いくつかのエスケープを回避し、最後のエスケープを回避できます (つまり、-
が最初または最後にあることを確認します)。
^[\w\s+/-]+$
正規表現は次のようになります。
/[\w\d\/\-\+ ]+/g
それはすべての文字、数字、および / - + とスペースです (ただし、他の空白文字は含まれません)。
末尾の + は、少なくとも 1 文字が必要であることを意味します。空の文字列を許可する場合は、* に変更します。
このコードはそれを行います:
var input = "Test if / this+-works&sec0nd 2 part*3rd part";
var matches = Regex.Matches(input, @"([0-9a-zA-Z /+-]+)");
foreach (Match m in matches) if (m.Success) Console.WriteLine(m.Value);
出力には 3 つの結果行が含まれます。