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

新手程序员:如何拆分领域字符串以生成对应序号列表?

解决方法

针对你给出的带编号的字符串,有两种简单的方式可以拆分并生成对应位置的列表:

方法一:字符串拆分法(格式固定时首选)

如果你的字符串格式始终是编号. 内容;编号. 内容这种固定模式,可以直接通过两次拆分实现:

# 初始字符串
original_str = "1. LS1_9 信号过程的分子机制;2. LS1_7 分子生物物理学、生物力学、生物能学"

# 第一步:按中文分号拆分出每个编号项
split_parts = original_str.split(";")

# 第二步:去掉每个项的编号前缀,提取内容
result_list = [item.split(". ", 1)[1] for item in split_parts if item.strip()]

print(result_list)
# 输出:['LS1_9 信号过程的分子机制', 'LS1_7 分子生物物理学、生物力学、生物能学']

解释:

  • split(";")把整个字符串按中文分号拆分成两个子串,分别对应两个编号项
  • split(". ", 1)把每个子串按". "拆分成两部分,取第二部分就是纯内容;1表示只拆分一次,避免内容里有"."时出错
  • if item.strip()用来过滤拆分后可能出现的空字符串

方法二:正则表达式法(格式灵活时首选)

如果字符串里的分隔符可能混用中英文分号,或者编号格式有变化(比如多位数编号),用正则表达式可以更灵活地提取内容:

import re

original_str = "1. LS1_9 信号过程的分子机制;2. LS1_7 分子生物物理学、生物力学、生物能学"

# 匹配"数字. 内容"的模式,直到遇到分号或字符串结尾
result_list = re.findall(r"\d+\. (.*?)(?=[;;]|$)", original_str)

print(result_list)
# 输出:['LS1_9 信号过程的分子机制', 'LS1_7 分子生物物理学、生物力学、生物能学']

解释:

  • \d+匹配1个或多个数字(支持多位数编号,比如10. xxx)
  • \.匹配点号(点号是正则特殊字符,需要转义)
  • (.*?)非贪婪匹配任意字符,直到遇到后面的终止符
  • (?=[;;]|$)正向预查,匹配到中文分号、英文分号或字符串结尾就停止

两种方法最终都能得到你需要的列表,列表第1位对应原字符串的1号内容,第2位对应2号内容,以此类推。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:17:24