2016-11-17 63 views
-2

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

目前我正则表达式是在这里:https://regex101.com/r/WigXOo/1

我曾尝试下面的正则表达式:

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

它正确地验证:

苏尼尔·库马尔(正确)

但它是允许的荷兰国际集团第三名称,如:苏尼尔·库马尔123(正确)

我要像我下面的结果:

正确的输出:

苏尼尔·库马尔(正确)

不正确的输出:

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

  • 苏尼尔·库马尔(不正确)(仅需1从第1名,并从第二个名字第2日的信是资本)

  • 苏尼尔·库马尔(不正确)(只需要单名第一名和第二名之间的空格)(第一名和第二名之间有2个空格)

请帮忙。

+0

什么是你的问题,你说苏尼尔·库马尔(正确)和苏尼尔·库马尔(不正确),但他们之间没有区别。 – 2016-11-17 10:38:04

+4

Oblicatory [Falsehoods Programmers Believe About About](https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/)。另外,请阅读正则表达式教程。你需要开始和结束锚点。请阅读[问]并分享你的研究。 “你尝试过什么”并不意味着“显示不起作用的代码”,它表示“显示你试图让代码工作”。 – CodeCaster

+1

我提到过名字和姓氏之间有2个空格。 –

回答

2

您可以添加锚你的表达,即^$整个输入相匹配,以便你的表情就会变成:

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

如果这是答案,问题是[如何将整个字符串与正则表达式匹配?](http://stackoverflow.com/questions/4123455/怎么办,我匹配-AN-整个串上带有一个正则表达式)。 –

+0

@WiktorStribiżew认为会有一个,现在标记 – TheLethalCoder

+0

谢谢@ TheLethalCoder它是我想要的一样,再次感谢 –