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

拉丁姓名正则表达式:如何识别南美格式姓名并正确拆分排序

识别并拆分南美风格姓名的正则方案

先理清南美姓名的典型结构:通常是2-3个给定名(Given Names) + 父姓(Paternal Surname) + 母姓(Maternal Surname),日常简称一般取最后一个给定名 + 父姓(就像你示例里的Sebastián Piñera)。结合你不能依赖国家字段、不能询问原籍的限制,我们可以基于命名模式和字符特征来构建正则。

核心思路

  1. 匹配带西班牙语特殊字符(重音、ñ)的姓名片段
  2. 区分给定名组和姓氏组:给定名组是前面连续的2-3个名字,姓氏组是后面连续的2个姓氏
  3. 提取最后一个给定名和第一个姓氏作为简称

正则表达式示例

^(?<given_names>(?:[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+(?:\s+[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+){1,2}))\s+(?<paternal_surname>[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+)\s+(?<maternal_surname>[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+)$

正则拆解

  • (?<given_names>(?:[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+(?:\s+[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+){1,2})): 捕获2-3个给定名,每个名字以大写特殊字母开头,小写特殊字母结尾,支持重音和ñ
  • (?<paternal_surname>[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+): 捕获父姓(第一个姓氏)
  • (?<maternal_surname>[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+): 捕获母姓(第二个姓氏)

提取简称的逻辑

拿到捕获组后,将given_names按空格分割,取最后一个元素,再加上paternal_surname就是简称。比如:

  • 全名:Miguel Juan Sebastián Piñera Echenique
  • 分割given_names得到["Miguel", "Juan", "Sebastián"],取最后一个Sebastián
  • 加上paternal_surname的Piñera,得到目标简称Sebastián Piñera

边界情况处理

  • 2个给定名的场景:比如Ana María González Ruiz,正则依然能匹配,分割给定名后取最后一个María,加上父姓González,得到María González
  • 带前缀的名字:如果遇到María del Carmen García Pérez这类带del前缀的名字,可以把正则里的给定名部分调整为支持前缀:(?:[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+(?:\s+(?:del|de la|de los)?\s?[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+){1,2}),按需扩展即可
  • 特殊字符覆盖:正则已包含西班牙语常用重音字母和ñ,能覆盖绝大多数南美姓名的字符需求

代码示例(Python)

import re

full_name = "Miguel Juan Sebastián Piñera Echenique"
name_pattern = re.compile(r'^(?P<given_names>(?:[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+(?:\s+[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+){1,2}))\s+(?P<paternal_surname>[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+)\s+(?P<maternal_surname>[A-ZÁÉÍÓÚÑ][a-záéíóúñ]+)$')

match = name_pattern.match(full_name)
if match:
    given_names_list = match.group('given_names').split()
    preferred_name = given_names_list[-1]
    short_name = f"{preferred_name} {match.group('paternal_surname')}"
    print(short_name)  # 输出: Sebastián Piñera

需要注意的是,没有任何正则能100%覆盖所有边缘情况(比如非常见的命名结构),但这个方案能处理绝大多数符合南美主流命名习惯的姓名。如果后续遇到特殊案例,可以再针对性调整正则规则。

内容的提问来源于stack exchange,提问作者i. Madar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:35:17