正则表达式,将所有姓氏分成单个组

时间:2017-06-14 05:35:43

标签: regex split regex-group

我需要分割一个全名。我知道这个问题一再被问到,但我找不到我需要的解决方案。

https://regex101.com/r/PvDIPA/1

我有一个全名:'名字中间名姓氏'

除了第一个名字之外,我需要将所有内容放入第1组

我已经尝试过这个RegEx:(\ s + \ S *)$但是它只提供了'姓氏'在第1组中,我需要' Middlename姓氏'成为第1组。

我希望你能提供帮助。

2 个答案:

答案 0 :(得分:0)

您是否在寻找简单的内容:(\s+\S*){2}$https://regex101.com/r/PvDIPA/2

请注意,这只适用于某人有一个中间名的情况。

也许这更适合你:^\w+((?:\h+\w+)+)$ https://regex101.com/r/PvDIPA/4

请注意,我在这里使用了\h而不是\s,因为我使用带有//gm标记的regex101,因此\s也会匹配行尾导致第一场比赛也吃第二线。

答案 1 :(得分:0)

[^ ]+ +((?:\w+ *){1,2})

See demo

<强>用法

[^ ]+ + 匹配所有内容,包括首次出现的空格字符

((?:\w+ *){1,2}) 捕获1或2次出现的任何字母数字字符,后跟零个或多个空格字符(外部括号为捕获组,带有?:的内部括号为非-capturing group在演示页面上查看更完整的说明)

还允许名称之间存在多于1个空格