如何在Java中使用正则表达式验证姓名、中间名和姓氏?

如何在Java中使用正则表达式验证姓名、中间名和姓氏?,java,regex,validation,Java,Regex,Validation,我得到了一个名单的名字,需要验证他们。一些例子: 伊丽莎白·T·邦 伊丽莎白·邦 扎基·M·F·埃尔·阿达维 约瑟夫m。小帕斯托尔 扎基·M·F·埃尔·阿达维 如何在Java中使用正则表达式来验证它们?我首先列出指定有效名称的规则。用简单的古英语。我怀疑你会有一套非常复杂的规则和例外。一旦你明白了这一点,你就可以着手编写一个正则表达式来匹配它们了。如果你正在使用Eclipse,你可能会发现Eclipse插件非常有用。我在测试和开发复杂的正则表达式时随时使用它。它允许您指定测试输入、查看所有匹

我得到了一个名单的名字,需要验证他们。一些例子:

  • 伊丽莎白·T·邦
  • 伊丽莎白·邦
  • 扎基·M·F·埃尔·阿达维
  • 约瑟夫m。小帕斯托尔
  • 扎基·M·F·埃尔·阿达维

如何在Java中使用正则表达式来验证它们?

我首先列出指定有效名称的规则。用简单的古英语。我怀疑你会有一套非常复杂的规则和例外。一旦你明白了这一点,你就可以着手编写一个正则表达式来匹配它们了。

如果你正在使用Eclipse,你可能会发现Eclipse插件非常有用。我在测试和开发复杂的正则表达式时随时使用它。它允许您指定测试输入、查看所有匹配的组等。

为什么需要验证名称?为了捕捉打字错误或者人们只是在键盘上捣乱?拒绝一个名字不寻常的合法客户真的值得冒险吗?有些人没有中间名或名字不止一个,有些人总共只有一个名字,有些人坚持在任何地方都使用他们的名字,当然还有各种各样的非ASCII字符。

可以描述好名字的规则吗?如果你有一个字符串/文本字段/任何包含全名的东西,不要期望能够可靠地将它们解析为第一个、中间个和最后一个。在不同的文化背景下,你会遇到没有/多个中间名、名字之前的姓氏、连字符甚至名字/姓氏中的空格……我想这一尝试会很有启发性。是的,一旦你有了列表,你就会决定无法验证它们。看,等等。验证名称是不好的!我妻子有两个中间名,所以大多数人都拒绝她。还有多个单词的姓氏等。根据语言的不同,你有各种不同的规则。。。所以除非你有很好的理由来验证名字,否则我会避免!