C# 拒绝重复字符输入的正则表达式
我想要一个正则表达式,它允许用户输入以下值。至少四个字符,最多30个字符,第一个字符应为大写 约翰、史密斯、安德森、艾玛 我不希望用户输入以下类型的值 Jooohnnnnnn、Smmmmith、aaanderson、emmma 有谁能给我一个正则表达式吗?我搜索了很长一段时间,但找不到有效的正则表达式 我需要它来验证我的ASP.net MVC应用程序模型 谢谢 编辑:我不知道如何检查重复字符,我只是尝试了以下方法C# 拒绝重复字符输入的正则表达式,c#,asp.net,regex,asp.net-mvc-4,C#,Asp.net,Regex,Asp.net Mvc 4,我想要一个正则表达式,它允许用户输入以下值。至少四个字符,最多30个字符,第一个字符应为大写 约翰、史密斯、安德森、艾玛 我不希望用户输入以下类型的值 Jooohnnnnnn、Smmmmith、aaanderson、emmma 有谁能给我一个正则表达式吗?我搜索了很长一段时间,但找不到有效的正则表达式 我需要它来验证我的ASP.net MVC应用程序模型 谢谢 编辑:我不知道如何检查重复字符,我只是尝试了以下方法 @“^[A-Z]{1}[A-zA-Z]{2,29}$” 我想补充的规则是 1.
@“^[A-Z]{1}[A-zA-Z]{2,29}$”
我想补充的规则是
1. First character Upper case
2. 4-30 characters
3. No repeats of characters. Not greater than 2
要对正则表达式执行检查,可以使用负前瞻:
^(?!.*(.)\1{2})[A-Z][a-zA-Z ]{3,29}$
如果前瞻(?!…)
中的内容匹配,那么它将使整个正则表达式失败
为了寻找重复的模式,我们使用一个捕获组:()\1{2}
。我们捕获第一个字符,然后用backreference检查它后面是否有(至少)两个相同的字符\1
请参阅。以下是您要查找的内容:
^ (?# Starting of name)
(?=[A-Z]) (?# Ensure it starts with capital A-Z without consuming the text)
(?i:([a-z]) (?# Following letters ignoring case)
(?!\1{2,}) (?# Letter cant be followed by previous letter more than twice)
){3,30} (?# Allow condition to be repeated 3 to 30 times)
$
视觉表现如下所示:
您可以包括您尝试的正则表达式吗?还有,为什么Emma被授权?可以重复两次allowed@RandomUser你能编辑你的文章使它更明确吗?你试图执行的确切规则并不清楚。顺便说一句,
{1}
总是没有用的。默认情况下,这里有一个字符。如何对电子邮件ID执行相同的操作,以拒绝xxx。xxx@xxx.xxx
我试图用我所拥有的东西添加(?!.*()\1{2})
。@RandomUser:你的电子邮件正则表达式是什么?“^([\w-]+\.+[\w-]++\.[a-zA-Z]{1}{124;[\ w-]{2,}”)@+@(([0-1]?[0-9]{1,2};25[0-5];2-0-4][0-9][1}.[0-9]){|[0-1[0-0-5 5[0-0 0-5 5[0-5 5[0-5 5[0-0 0-5 5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5[0-5 5 5如果不是,你可能应该问另一个问题。注释不是为来回扩展而设计的。3您能否提供一封电子邮件示例来说明您的问题?我猜一个是由这个正则表达式验证的,有3个连续字符,当你在开始添加(?!*()\1{2})
时,它仍然由正则表达式验证。作为一个新问题,我不知道这是否真的是一个问题,但仅供参考,它也将匹配Mmmatthew