c#正则表达式,只允许数字和字母不起作用
我正在使用ASP.NETMVC 我需要一个只允许数字和字母的正则表达式,而不允许空格或“,;:~^”之类的。简单的数字和字母 另一件事:2个字符不能连续重复 所以我可以有123123,但不能有1123456 我已经做到了:c#正则表达式,只允许数字和字母不起作用,c#,regex,asp.net-mvc,expression,C#,Regex,Asp.net Mvc,Expression,我正在使用ASP.NETMVC 我需要一个只允许数字和字母的正则表达式,而不允许空格或“,;:~^”之类的。简单的数字和字母 另一件事:2个字符不能连续重复 所以我可以有123123,但不能有1123456 我已经做到了: Regex ER1 = new Regex(@"(.)\\1", RegexOptions.None); Regex ER2 = new Regex(@"[A-Z0-9]", RegexOptions.IgnoreCase); 我不能在一个表达式中表达所有内容,我仍然有一
Regex ER1 = new Regex(@"(.)\\1", RegexOptions.None);
Regex ER2 = new Regex(@"[A-Z0-9]", RegexOptions.IgnoreCase);
我不能在一个表达式中表达所有内容,我仍然有一些字符通过
以下是我的全部测试代码:
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
Regex ER1 = new Regex(@"(.)\\1", RegexOptions.None);
Regex ER2 = new Regex(@"[A-Z0-9]", RegexOptions.IgnoreCase);
if (!ER1.IsMatch(input) && ER2.IsMatch(input))
Console.WriteLine( "Casou");
else
Console.WriteLine( "Não casou");
Console.ReadLine();
}
}
我发现这些表达式非常复杂,我非常乐意得到一些帮助。让我们试试这个:
@"^(([0-9A-Z])(?!\2))*$"
解释:
^ start of string
( group #1
([0-9A-Z]) a digit or a letter (group #2)
(?!\2) not followed by what is captured by second group ([0-9A-Z])
)* any number of these
$ end of string
代码>组称为
(LastCoder的表达式是等效的)类似的东西应该可以工作
@"^(?:([A-Z0-9])(?!\1))*$"
听起来像是你设置了邪恶的密码限制。不要那样做。嗯,我实际上不知道代码将如何使用。我的老板需要它。我做到了。很简单:D但是如果我现在猜你提到了,我想这就是他需要它的原因。哈哈,你是怎么认识这个人的?你有一个额外的反斜杠,从一根普通的弦开始,你的弦也不管用。Regex ER=new Regex(@“^([0-9A-Z])(?!\\2))*$”,RegexOptions.None);不让我打字。不过还是谢谢你,伙计。好啊这个现在很好用。据我所知。非常感谢你。我想我会在工作中获得一颗金星的,哈哈哈。感谢大家的努力、时间和帮助。巴西的问候。塞萨尔对不起,我来这里是为了正则表达式,不是为了C。您的评论中确实有不平衡的括号:[RegularExpression(@“^([0-9A-Z])(?!\2))*$”
我用这种方法测试了它,但它不起作用:我不知道我是否做错了什么。静态void Main(string[]args){string input=Console.ReadLine();Regex ER=new Regex(@“^(?([A-Z0-9])(?!\1))*$”,RegexOptions.None);if(ER.IsMatch(input))Console.WriteLine(“Casou”);else Console.WriteLine(“Não Casou”);Console.ReadLine();}它不以这种方式接受字母。只有数字。但是圆点和Coma也被屏蔽了。好啊我明白了。现在这几乎是完美的。唯一缺少的是“禁止重复”的东西。例如如果我输入123123,它应该通过,但如果我写1233,它就不会通过。不应该让我连续重复两个字符。你的答案在我上面给出的例子中非常有效。但我不能让它作为一个属性工作。为什么会这样?[Required(ErrorMessage=“Required”)][RegularExpression(@“^([0-9A-Z])(?!\2))*$”,ErrorMessage=“Required”)]