我有正则表达式只允许点和拉丁字母。但是这个表达式缺少存在空格的字符串。在我的代码中,我需要看到真假。但我看到了真实和真实。它是如何解决的?
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);
我想你想要这个正则表达式
^[a-zA-Z]+$
您的第一个问题是正则表达式中的.
通常表示"任何字符"。因此,[a-zA-Z]|.
表示"一个字母或任何字符",并将匹配一个空格。
你要么需要
-
逃离
.
,在它前面放一个,给
@"[a-zA-Z]|."
,或者 - 将其移动到字符类中,不再需要对其进行转义,从而提供
@"[a-zA-Z.]"
正如 Benoit 指出的那样,您的第二个问题是您的正则表达式询问"输入中是否存在与此类匹配的任何字符",您真正想问"输入中的每个字符是否都与类匹配"。我不会在这里重复他的回答。