首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正则表达式用于将名称拆分为名字/中间名和姓氏

正则表达式用于将名称拆分为名字/中间名和姓氏
EN

Stack Overflow用户
提问于 2018-06-08 05:09:00
回答 1查看 69关注 0票数 0

不确定如何解决这个问题,我已经尝试了很久了。我有一大堆名字,有些名字的格式与其他名字不同,一个特别的例子是这样说:

John David Smith or John Smith

现在,在可能的情况下,我希望Regex返回两个匹配,一个包含名字(如果存在,还包含中间名),另一个包含姓氏。目前我使用的是:

代码语言:javascript
复制
(^\w+)|(\w+$)

它工作得很好,除了它省略了中间名(如果有的话)。

我意识到我可以很容易地在.net中拆分名称并以这种方式阅读它,但是使用正则表达式有一个非常好的理由,它将在我的项目中发挥更大的作用。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-06-08 07:27:16

这将返回两个结果。一个将是名字和中间名(如果存在),第二个将是姓氏。

代码语言:javascript
复制
^(.*?)\s([^\s]*)$

"John Smith“将返回"John”和" Smith“,而"John David Smith”将返回"John David“和"Smith”。这是在假设名称不包含空格,但任何其他字符都应该可以。

在收集这样的信息时,您应该尽可能将它们分开收集。当您考虑姓氏时,这不是一个完美的解决方案,因为姓氏中可能包括"van der“和其他可能性。正则表达式无法区分中间名是两个单词,还是姓氏是两个单词。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50750190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档