我如何匹配第一个单词之后的所有内容?

时间:2019-05-01 12:04:26

标签: regex

所以我总共是正则表达式n00b,并且我有一个Google电子表格,其中包含包含名称的列。

我弄清楚了第一个单词的匹配方式,因此我能够创建一个仅包含名字的列。

现在,我想要一个包含中间名和姓氏(组合)的列。所以我想我需要正则表达式代码来匹配第一个单词之后的所有内容。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

根据您使用的语言而定,可能略有不同,但是例如,如果您使用的是python,则可以简单地使用:

(?P<firstName>^\w+)\s(?P<middleAndLast>.+)

example;哪个将抢得第一个名字,然后第二个小组将成为之后的一切。如果数据集中的列中包含更多文本,我们可以使其更复杂。

对于example,您可以添加中间名和姓氏的描述,并在中间名(?=...)前面添加可选的中间名,以防万一某人没有中间名。这将检查中间名或仅获取姓氏。如果姓氏不是整个字符串的结尾,则可以删除$

如下所示:
(?P<firstName>^\w+)\s((?P<middle>[\w\.]+)(?=\s\w))?(\s?(?P<Last>\w+))$

这里是一个ruby example,它抓住名字,然后抓住所有空白和字符。

对于Google表格,应执行以下操作:
=REGEXEXTRACT(F3,"(^\w+)\s(\w.*)")

有用的资源herehere