Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 拒绝重复字符输入的正则表达式_C#_Asp.net_Regex_Asp.net Mvc 4 - Fatal编程技术网

C# 拒绝重复字符输入的正则表达式

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.

我想要一个正则表达式,它允许用户输入以下值。至少四个字符,最多30个字符,第一个字符应为大写

约翰、史密斯、安德森、艾玛

我不希望用户输入以下类型的值

Jooohnnnnnn、Smmmmith、aaanderson、emmma

有谁能给我一个正则表达式吗?我搜索了很长一段时间,但找不到有效的正则表达式

我需要它来验证我的ASP.net MVC应用程序模型

谢谢

编辑:我不知道如何检查重复字符,我只是尝试了以下方法

@“^[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