3

すべての英数字 (大文字と小文字の両方、および数字) を許可するだけでなく、スペース、スラッシュ (/)、ダッシュ (-)、プラス (+) も許可する正規表現を機能させようとしていますか?

私はリドルで遊んでいます: http://refiddle.com/gqrしかし、これまでのところ成功していません。

違いがあるかどうかはわかりませんが、C#でこれをやろうとしていますか?

4

3 に答える 3

5

それらのみを許可する場合は、アンカー^$.

^[a-zA-Z0-9_\s\+\-\/]+$
^                    ^^

これはあなたの正規表現で、2 行目に示されているように文字を追加しました。1 つ以上の文字 ( の場合は 0 以上) を許可するために、最後の+orを忘れないでください。そうしないと、正規表現は.**.Matches

次のように、クラス全体[A-Za-z0-9_]を 1に置き換えることもできます。\w

^[\w\s\+\-\/]+$

編集:

実際には、慎重に配置することで、いくつかのエスケープを回避し、最後のエスケープを回避できます (つまり、-が最初または最後にあることを確認します)。

^[\w\s+/-]+$
于 2013-05-30T10:46:14.700 に答える
3

正規表現は次のようになります。

/[\w\d\/\-\+ ]+/g

それはすべての文字、数字、および / - + とスペースです (ただし、他の空白文字は含まれません)。

末尾の + は、少なくとも 1 文字が必要であることを意味します。空の文字列を許可する場合は、* に変更します。

于 2013-05-30T10:39:57.787 に答える
0

このコードはそれを行います:

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 つの結果行が含まれます。

  • / this+-works かどうかをテストする
  • 2 番目の 2 部
  • 3rd---part (ここでは - でスペースを表示しました)
于 2013-05-30T10:46:07.013 に答える