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

如何用Python从单个字符串中解析姓名、年龄、性别?

从拼接字符串中解析姓名、年龄、性别

问题说明

给定拼接格式的字符串,需要从中提取姓名、年龄、性别三类信息:
输入示例:

str = "musleh23malejemi22femaletanjir26male"

期望输出:

Name: musleh, Age: 23, Gender: male
Name: jemi, Age: 22, Gender: female
Name: tanjir, Age: 26, Gender: male

你当前的代码存在问题:

import re

text = "musleh23malejemi22femaletanjir26male"
chunks = re.split(r"\d+}", text)

这段代码无法正常工作的原因有两点:一是正则表达式多了多余的}符号,二是split方法仅能按匹配内容分割字符串,无法直接提取我们需要的三组关联信息。

正确实现方案

我们需要用正则匹配捕获的方式,精准定位每组信息的结构:字母组成的姓名、数字组成的年龄、固定的性别字符串(male/female)。

完整代码:

import re

text = "musleh23malejemi22femaletanjir26male"
# 构造正则模式,分别捕获姓名、年龄、性别三个部分
pattern = re.compile(r"([a-z]+)(\d+)(male|female)", re.IGNORECASE)
# 获取所有匹配的三元组
matches = pattern.findall(text)

# 遍历输出结果
for name, age, gender in matches:
    print(f"Name: {name}, Age: {age}, Gender: {gender}")

代码说明

  • ([a-z]+):捕获一个或多个小写字母,对应姓名部分
  • (\d+):捕获一个或多个数字,对应年龄部分
  • (male|female):精准匹配固定的性别字符串,支持male/female两种取值
  • re.IGNORECASE:可选参数,用于兼容可能出现的大小写混合情况(如Male/Female)
  • findall方法会返回所有符合模式的三元组列表,遍历后即可格式化输出对应信息

内容的提问来源于stack exchange,提问作者Md Musleh Uddin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:41:02