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

Python re.split分割字符串不删除分隔符的正确实现方法

问题原因

你用re.split("\d{8}", text)拿不到正确结果,是因为re.split会把正则匹配到的内容当成分隔符直接丢弃,自然就把你需要保留的8位数字给删掉了。

解决方法

直接用re.findall按你需要的片段规则做匹配就行,不用硬套split方法,逻辑更简单:

import re

text = "12345678 abcdefg 37394822 gdzdnhqihdzuiew 09089799 78998728 gdjewdwq"
# 匹配规则:以8位数字开头,后面可选匹配空格+连续字母串,直到下一组8位数字或字符串结尾
res = re.findall(r'\d{8}(?:\s+[a-zA-Z]+)?', text)

# 逐行打印就得到你要的格式
for line in res:
    print(line)

运行后输出完全符合预期:

12345678 abcdefg
37394822 gdzdnhqihdzuiew
09089799
78998728 gdjewdwq

如果后续8位数字后面跟的内容不止字母,你只需要调整正则里[a-zA-Z]+的匹配范围就行,核心思路是直接抓取你要的每一段内容,比拆分后再拼接分隔符省事很多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 03:12:23