正则表达式验证具有至少四个字符的全名

时间:2016-02-14 14:16:33

标签: regex validation google-form

我想使用正则表达式来验证名称。名称必须包含,名字,中间名,姓氏(不一定全部)。但我还想强加一个条件,即名称必须至少为四个字符。我找到了正则表达式验证全名Java Regex to Validate Full Name ...并找到正则表达式来检查字符串中至少有三个字符(字母),Regex to check for at least 3 characters。但我不确定如何将这两者结合起来以获得理想的结果。请帮助我实现所需的正则表达式,以便我可以完成我的项目。

2 个答案:

答案 0 :(得分:2)

您可以使用

^[a-zA-Z]{4,}(?: [a-zA-Z]+){0,2}$

请参阅regex demo

这适用于以低位和高位字母开头的名称。

  • ^ - 字符串开头
  • [a-zA-Z]{4,} - 4个或更多ASCII字母
  • (?: [a-zA-Z]+){0,2} - 0到2次出现的空格后跟一个或多个ASCII字母
  • $ - 字符串结束。

如果您需要将单词限制为以大写字母开头,则可以使用

^[A-Z][a-zA-Z]{3,}(?: [A-Z][a-zA-Z]*){0,2}$

答案 1 :(得分:0)

可能有点矫枉过正,但是:

([A-Z][a-z]{3,} )([A-Z][a-z]{3,} )?([A-Z][a-z]{3,})

应该做的伎俩。 它匹配以大写字母开头,后跟3个或更多小写字母的单词 - >单词长度为四。中间名是可选的,姓氏不包含尾随空格。

修改
如果你想支持“花哨”字符(äöü等),你可以阅读this question了解详情。 使用带有UNICODE_CHARACTER_CLASS标志的Java 7模式,正则表达式应如下所示:

(\\p{Upper}\\p{Lower}{3,} )(\\p{Upper}\\p{Lower}{3,} )?(\\p{Upper}\\p{Lower}{3,})