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

如何扩展Python正则捕获组以支持带变音符号的西班牙语姓名

正则捕获含西班牙语变音符号的姓名解决方案

需求说明

在不改动原有正则核心逻辑的前提下,扩展姓名捕获规则,使其能够识别包含á、é、í、ó、ú、ü、ñ这些西班牙语变音符号的姓名,同时保留原有“大写开头+后续小写字符”的姓名匹配行为。

修改后的代码

import re

input_text = "Había... ; Martín Zázza no se trata de un nombre" #example 1
# input_text = "asasjhsah; Carolina María Sol no se trataría de un nombre" #example 2
# input_text = "Isaías no se trataría de un nombre" #example 3

word = ""

# 仅修改此处字符集,添加西班牙语变音符号
name_capture_pattern_01 = r"([A-Z][a-záéíóúüñ]+(?:\s*[A-Z][a-záéíóúüñ]+)*)"

regex_pattern_01 = r"(?:^|[.;,]\s*)" + name_capture_pattern_01 + r"\s*(?i:no)\s*(?i:se\s*tratar[íi]a\s*de\s*un\s*nombre|se\s*trata\s*de\s*un\s*nombre|(?:ser[íi]a|es)\s*un\s*nombre)"

n1 = re.search(regex_pattern_01, input_text)
if n1 and word == "":
    word, = n1.groups()
    word = word.strip()

print(repr(word)) #print the captured substring

修改说明

仅对name_capture_pattern_01中的小写字符匹配规则做扩展:将原有的[a-z]替换为[a-záéíóúüñ],既保留了“每个姓名片段以大写字母开头、后续为小写字符”的原有逻辑,又新增了对西班牙语常见变音符号的支持,完全适配目标姓名的捕获需求。

预期捕获结果

Martín Zázza
Carolina María Sol
Isaías

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:55:28