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

如何将A行到B行中的ID号码单独拆分提取

姓名与号码拆分实现方案

拆分逻辑

核心基于两类内容的特征差异:中文姓名由中文字符组成,号码为纯数字,常见组合格式包含姓名与号码直接拼接、或中间存在空格/特殊符号分隔。

适配场景示例

输入张三13800138000,拆分结果:姓名张三,号码13800138000
输入13900139000李四,拆分结果:姓名李四,号码13900139000
输入王五 13700137000,拆分结果:姓名王五,号码13700137000

Python实现代码

import re

def split_name_and_phone(raw_str):
    # 移除所有非中文、非数字的冗余字符
    cleaned_str = re.sub(r'[^\u4e00-\u9fa5\d]', '', raw_str)
    # 提取所有中文字符作为姓名
    name = ''.join(re.findall(r'[\u4e00-\u9fa5]', cleaned_str))
    # 提取所有数字作为号码
    phone = ''.join(re.findall(r'\d', cleaned_str))
    return name, phone

# 测试用例
test_cases = [
    '张三13800138000',
    '13900139000李四',
    '王五 13700137000',
    '赵六_13600136000'
]
for case in test_cases:
    name, phone = split_name_and_phone(case)
    print(f"输入:{case} | 姓名:{name} | 号码:{phone}")

扩展说明

  • 上述代码适配绝大多数中文姓名+纯数字号码的拆分场景,若需拆分的号码包含特殊符号(如固定电话横杠、区号+号等),可将需要保留的字符添加至re.sub的排除规则内即可。
  • 其他编程语言实现逻辑通用:过滤冗余字符后,分别匹配提取中文、数字内容即可。
  • 若输入包含生僻字、异体字,需调整中文正则匹配范围,覆盖对应字符集区间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:15:03