如何为印度名称编写正则表达式

时间:2015-12-09 02:03:44

标签: regex

如何编写正则表达式来验证印度名称?

印第安人姓名大多不包含姓名的姓氏或姓氏。它只包含Initial后跟Name,反之亦然。

名称应包含大写和小写的情况,或者有时包含两种情况。 White-Spaces和Full Stops也是名称的一部分。

人名应以大写或小写字母开头。

我需要正则表达式来验证我在下面列出的名称。

测试用例有效名称列表:

  1. B中。 Bala Manigandan
  2. B.Balamanigandan
  3. B中。 Balamanigandan
  4. G.S。 Sakthivel
  5. -G。 S. Sakthivel
  6. Sakthivel M.G。
  7. GS Sakthivel
  8. G.S。 SAKTHIVEL
  9. BALA MANIGANDAN .B
  10. Sakthivel .M.G

1 个答案:

答案 0 :(得分:1)

如果要捕获仅包含大写和小写字符,句点和空格的所有字符串,可以使用

^[a-zA-Z\. ]+$

以下是正则表达式如何工作的细分

  

^ 匹配字符串的开头

     

<强> [A-ZA-Z \。 ] 匹配任何字符a-z,A-Z或句点或空格
   + 使上面的内容匹配任何包含1个或多个字符的字符串

     

$ 匹配字符串的结尾

你可以test this regex here, at regex101.com

但是,可以更好地创建正则表达式,以确保字符串不会以句点或空格结束或开始

^(?![\. ])[a-zA-Z\. ]+(?<! )$

这与上面的正则表达式基本相同,除了它使用负前瞻和负后看以确保字符串不以句点或空格开头或以空格结尾

  

小组的开头

     

?!使该群组成为Negative Lookahead

     

[\。 ] 匹配句号或空格(在这种情况下,因为我们看起来是负面的前瞻,它会确保它匹配这个)

     

小组结束   


  第二组的开头

     

?&lt;!使该群组成为Negative Lookbehind

     

空格与文字空间相匹配(在这种情况下,因为我们看起来是负面的背后,它会确保它匹配这个)

     

第二组结束

您可以测试此正则表达式here on regex101.com