当前位置: 首页 > 知识库问答 >
问题:

Regex验证至少包含四个字符的全名

宫修贤
2023-03-14

我想使用正则表达式来验证名称。名称必须包含名、中间名、姓氏(不一定全部)。但我还想设置一个条件,即名称必须至少包含四个字符。我在这里找到了用于验证全名的正则表达式Java regex to validate full name…,并在这里找到用于检查字符串中是否至少有三个字符(字母)的正则表达式regex,以检查是否至少有3个字符。但我不确定如何将这两者结合起来以获得期望的结果。请帮助我实现所需的Regex,以便我可以完成我的项目。

共有3个答案

谢清野
2023-03-14

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

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

应该能做到。它匹配以大写字母开头的单词,后跟3个或更多小写字母-

编辑:
如果你想支持“花哨”字符(äöü等),你可以阅读这个问题了解详情。使用Java7中带有UNICODE_CHARACTER_CLASS标志的模式,正则表达式应该如下所示:

(\\p{Upper}\\p{Lower}{3,} )(\\p{Upper}\\p{Lower}{3,} )?(\\p{Upper}\\p{Lower}{3,})
宦烈
2023-03-14

以下是我的解决方案:

^[a-zA-Z]{3,}( {1,2}[a-zA-Z]{3,}){0,}$
  • ^ -
弘承业
2023-03-14

您可以使用

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

查看正则表达式演示

这将适用于以小写和大写字母开头的名称。

  • ^-字符串开始
  • [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}$
 类似资料: