为名字姓氏生成正则表达式

时间:2016-11-17 10:35:22

标签: c# regex

我想为名字和姓氏创建正则表达式,只有2个单词只有1个空格。

目前,我的正则表达式位于:https://regex101.com/r/WigXOo/1

我尝试过以下正则表达式:

[A-Z][a-z]+(\s|,)[A-Z][a-z]{1,19}

它正确验证:

Sunil Kumar(正确)

但它允许第三个名字如:Sunil Kumar 123(正确)

我想要的结果如下:

正确输出:

Sunil Kumar (正确)

InCorrect Output:

  • Sunil Kumar 123 (不正确)(我只想要名字和第二名)

  • SUnil Kumar (不正确)(第1名只需要1个字母,第二名只需要第2个字母)

  • Sunil Kumar (不正确)(第1名和第2名之间只需要一个空格)(名字和名字之间有2个空格)

请帮忙。

1 个答案:

答案 0 :(得分:2)

您可以在表达式中添加锚点以匹配整个输入,即^$,这样您的表达式就会变为:

^[A-Z][a-z]+(\s|,)[A-Z][a-z]{1,19}$