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

Python RegEx匹配换行间姓名后接GEB/ADR规则不生效问题求助

问题根因
  • 核心错误是误用字符组[]实现多关键词匹配:[\s*^GEB$|\s*^ADR$]是单字符匹配规则,括号内的|、^、$全部失去正则语法含义,变成普通字符匹配,完全达不到识别GEB/ADR关键词的效果。
  • 姓名匹配段[\w\säöüÄÖÜß\-?]误加了?字符,会额外匹配不需要的问号。
  • 未添加行锚定限制,导致匹配范围溢出单行边界。
修正后正则(Python环境)
import re
# 正则表达式
pattern = r'^\s*([\w\säöüÄÖÜß-]+?)\s+(GEB|ADR)\s*$'
# 匹配时需要开启多行模式与Unicode适配
result = re.findall(pattern, your_text, flags=re.M | re.U)
# 提取结果的第一个分组即为目标姓名
匹配规则说明
  • ^+$配合re.M(多行模式)锚定单行首尾,保证匹配内容在两个换行之间
  • 姓名段用非贪婪匹配+?,避免吃掉后面关键词的前置空格
  • 用分组(GEB|ADR)匹配完整关键词,符合姓名后紧跟指定关键词的要求
  • 原生支持姓名内的多空格、连字符、德文特殊字符,也兼容开头的头衔格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:54:00