我有一个regex,给出了全名,它应该捕获名字和姓氏它应该排除后缀,比如“jr.”:

(.+)\s(.+(?!\sJr\.))

但是这个应用于字符串Larry Farry Barry Jones Jr.的正则表达式给出了匹配:
  1.    Larry Farry Barry Jones
  2.    Jr.

为什么我的负面展望在解析全名时没有忽略“Jr.”我要火柴2号里面有“琼斯”。

最佳答案

我认为下面的代码将是一个更易于维护的代码,而不是试图使用单个regex。

full_name = "Larry Farry Barry Jones Jr."
name_parts = full_name.split - ["Jr."]
first_name, last_name = name_parts[0], name_parts[-1]

10-06 14:25