我需要创建一个正则表达式来检查字符串是否只包含字母或数字,第一个字符必须是字母,最小字符数是2和最大10。
string shablon = "/^[a-zA-Z]{2,10}/g";
Regex myRegex = new Regex(shablon);
return myRegex.IsMatch(Login);
登录" Igal"它给我一个假的
任何建议?
答案 0 :(得分:2)
你用前面的斜杠和后面的/g
编写你的正则表达式,这是不是实际正则表达式的一部分,这些是一些库用来表示正则表达式的东西。但.NET库使用传递给Regex
构造函数的标志。
此外,您在正则表达式结束时忘记了一美元($
)。所以你可以使用:
csharp> string shablon = "^[a-zA-Z]{2,10}$";
csharp> Regex myRegex = new Regex(shablon);
csharp> myRegex.IsMatch("lgal");
true
如果字符串只包含字母或数字,则第一个字符必须是字母,最小字符数为2,最多10个。
你的正则表达式只匹配A-Za-z
两到十次。所以你不允许数字。但是,您可以将正则表达式重写为:
csharp> string shablon = "^[a-zA-Z][a-zA-Z0-9]{1,9}$";
csharp> Regex myRegex = new Regex(shablon);
csharp> myRegex.IsMatch("lgal");
true
正则表达式由两部分组成:
[a-zA-Z]
一个字母; [a-zA-z0-9]{1,9}
一到九个字母和/或数字。答案 1 :(得分:0)
这是针对c#测试的,您可以使用以下代码:
string shablon = @"^[a-zA-Z]{1}[a-zA-Z1-9]{1,9}"; Regex myRegex = new Regex(shablon); var r= myRegex.IsMatch("Igal");