正则表达式允许拉丁字母和数字编号并禁止空格

时间:2013-11-06 14:57:52

标签: c# regex

我有正则表达式只允许拉丁字母和数字编号并且不允许空格。但这个表达式错过了存在空间的字符串。在我的代码中,我需要看到真假。但我看到真实而真实。怎么修好?

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);

2 个答案:

答案 0 :(得分:5)

尝试将正则表达式更改为:

^[A-Za-z0-9]+$

你现在有正则表达式。* *这是有效的"或任何charachter(包括空格)"

答案 1 :(得分:1)

你真的不需要正则表达式,你可以简单地使用char.IsLetterOrDigit和一点LINQ:

String str1="5asdfEDadgs2";
String str2 = "5 asdfgsadgs2";

bool res = str1.All(char.IsLetterOrDigit); //True
bool res2 = str2.All(char.IsLetterOrDigit); //False

您也可以编写等效的str1.All(c => char.IsLetterOrDigit(c)),但我发现方法组形式更清晰。