1

ポイントとラテン文字のみを許可する正規表現があります。しかし、この式にはスペースが存在する文字列がありません。私のコードでは、true と false を確認する必要があります。しかし、私は真実と真実を見ます。どのように修正されましたか?

String str1="asdfgsadgs";
String str2 = "asd fgsx cgvbn adgs";
bool res = Regex.Match(str1, @"[a-zA-Z]|.").Success;
bool res2 = Regex.Match(str2, @"[a-zA-Z]|.").Success;
Console.WriteLine(res);
Console.WriteLine(res2);
4

2 に答える 2

1

最初の問題は.、正規表現では、一般に「任意の文字」を意味することです。したがって[a-zA-Z]|.、「文字または任意の文字」を意味し、スペースに一致します。

あなたはする必要があります

  • .の前にa を置いたり\、 を与えたりして、 を@"[a-zA-Z]|\."エスケープます。
  • エスケープする必要がなくなった文字クラス内に移動し、@"[a-zA-Z.]"

Benoit が指摘するように、2 番目の問題は、正規表現が「このクラスに一致する文字が入力のどこかに存在するか」を尋ねていることです。ここで、「入力のすべての文字がクラスに一致しますか」ここでは彼の答えを複製しません。

于 2013-11-06T12:23:35.293 に答える
1

この正規表現が必要だと思います

 ^[a-zA-Z]+$
于 2013-11-06T12:20:21.600 に答える