正则表达式验证至少有四个字符的全名
Regex to validate Full name having atleast four characters
我想使用正则表达式来验证名称。名称必须包含名字、中间名、姓氏(不一定全部)。但我也想强加一个条件,名称必须至少有四个字符。我在这里 Java Regex to Validate Full Name ... and found regex to check for checking of at least three chars (alphabets) in a string here Regex to check for at least 3 characters 找到了用于验证全名的正则表达式。但我不确定如何将这两者结合起来以获得所需的结果。请帮助我实现所需的正则表达式,以便我可以完成我的项目。
这可能有点矫枉过正但是:
([A-Z][a-z]{3,} )([A-Z][a-z]{3,} )?([A-Z][a-z]{3,})
应该可以解决问题。
它匹配以大写字母开头后跟 3 个或更多小写字母的单词 -> 单词长度为 4。中间名是可选的,姓氏不包含尾随空格。
编辑:
如果您想支持 "fancy" 个字符(äöü 等),您可以阅读 this question 了解详细信息。
使用 Java 7 中带有 UNICODE_CHARACTER_CLASS 标志的模式,正则表达式应如下所示:
(\p{Upper}\p{Lower}{3,} )(\p{Upper}\p{Lower}{3,} )?(\p{Upper}\p{Lower}{3,})
您可以使用
^[a-zA-Z]{4,}(?: [a-zA-Z]+){0,2}$
这将适用于以小写和大写字母开头的名称。
^
- 字符串开头
[a-zA-Z]{4,}
- 4 个或更多 ASCII 字母
(?: [a-zA-Z]+){0,2}
- 出现 0 到 2 次 space 后跟一个或多个 ASCII 字母
$
- 字符串结尾。
如果需要限制单词以大写字母开头,可以使用
^[A-Z][a-zA-Z]{3,}(?: [A-Z][a-zA-Z]*){0,2}$
我想使用正则表达式来验证名称。名称必须包含名字、中间名、姓氏(不一定全部)。但我也想强加一个条件,名称必须至少有四个字符。我在这里 Java Regex to Validate Full Name ... and found regex to check for checking of at least three chars (alphabets) in a string here Regex to check for at least 3 characters 找到了用于验证全名的正则表达式。但我不确定如何将这两者结合起来以获得所需的结果。请帮助我实现所需的正则表达式,以便我可以完成我的项目。
这可能有点矫枉过正但是:
([A-Z][a-z]{3,} )([A-Z][a-z]{3,} )?([A-Z][a-z]{3,})
应该可以解决问题。
它匹配以大写字母开头后跟 3 个或更多小写字母的单词 -> 单词长度为 4。中间名是可选的,姓氏不包含尾随空格。
编辑:
如果您想支持 "fancy" 个字符(äöü 等),您可以阅读 this question 了解详细信息。
使用 Java 7 中带有 UNICODE_CHARACTER_CLASS 标志的模式,正则表达式应如下所示:
(\p{Upper}\p{Lower}{3,} )(\p{Upper}\p{Lower}{3,} )?(\p{Upper}\p{Lower}{3,})
您可以使用
^[a-zA-Z]{4,}(?: [a-zA-Z]+){0,2}$
这将适用于以小写和大写字母开头的名称。
^
- 字符串开头[a-zA-Z]{4,}
- 4 个或更多 ASCII 字母(?: [a-zA-Z]+){0,2}
- 出现 0 到 2 次 space 后跟一个或多个 ASCII 字母$
- 字符串结尾。
如果需要限制单词以大写字母开头,可以使用
^[A-Z][a-zA-Z]{3,}(?: [A-Z][a-zA-Z]*){0,2}$