【发布时间】:2013-11-17 21:12:14
【问题描述】:
我的正则表达式只允许拉丁字母和数字数字并且不允许空格。但是这个表达式错过了存在空间的字符串。在我的代码中,我需要查看真假。但我看到的是真实的和真实的。它是如何解决的?
String str1="5asdfEDadgs2";
String str2 = "5 asdfgsadgs2";
String reg=@"^[a-zA-Z]|[0-9]|.*$"
bool res = Regex.Match(str1,reg). Success; //Must show true
bool res2 = Regex.Match(str2, reg).Success; //Must show false
Console.WriteLine(res);
Console.WriteLine(res2);
【问题讨论】:
-
您会看到
true,因为它只匹配.*,这意味着:每个字符(换行符除外)从零到无限次。如果你坚持使用正则表达式,你就快到了:使用^[A-Za-z0-9]+$。这仅匹配给定范围内的一个或多个字符,如果遇到任何其他字符将失败。