You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Python正则表达式以提取带Jr.、Sr.后缀的姓氏?

修复正则表达式提取带Jr./Sr.后缀的姓氏

原代码的正则仅能移除姓名末尾的罗马数字后缀,遇到Jr.、Sr.这类后缀时,会误将后缀识别为有效内容,导致提取结果出错。我们需要扩展正则逻辑,让它能匹配并移除这类常见姓名后缀,同时保留原有的罗马数字处理能力。

修改后的代码

import re

LastName = re.sub(r"(,?\s*(Jr\.|Sr\.|M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})))$", "", Tbl['Full Name'][0]).strip().split(' ')[-1]

关键调整说明

  • 新增Jr\.|Sr\.匹配分支:转义.是为了匹配实际的点号(正则中.默认代表任意字符),覆盖常见的姓名后缀
  • 添加,?\s*前缀:处理后缀前可能存在的逗号和空格(比如, Jr.这种格式)
  • 将罗马数字匹配逻辑与新后缀分支合并到同一分组,确保末尾的这类内容都会被统一移除

测试验证

  • 针对Ronald N. McDonald, Jr.:正则会移除末尾的, Jr.,剩余内容为Ronald N. McDonald,拆分后提取到姓氏McDonald
  • 针对John Smith III:原有罗马数字处理逻辑依然生效,移除 III后提取到Smith
  • 针对Jane Doe, Sr.:移除, Sr.后提取到Doe

内容的提问来源于stack exchange,提问作者user1574881

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 22:22:41