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

Python使用正则表达式按6位数字加冒号规则分割字符串问题求解

解决方案

方法1:直接使用re.findall匹配目标片段(推荐)

直接写正则匹配所有符合要求的片段,不需要拆分后拼接,逻辑更简单:

import re
my_str = '610640: 168 hours 610835: till next day 14:00 617041:  168 hours 611486:720 hours'
# 正则说明:匹配6位数字+冒号,之后惰性匹配任意字符,直到遇到下一个「可选空格+6位数字+冒号」或者字符串结尾
result = re.findall(r'\d{6}:.*?(?=\s*\d{6}:|$)', my_str)
print(result)

运行输出:

['610640: 168 hours', '610835: till next day 14:00', '617041:  168 hours', '611486:720 hours']

方法2:调整原有split代码,拼接捕获的分组

你原来的代码用split加捕获组后,得到的列表结构为[空字符串, 第一个ID加冒号, 第一个内容, 第二个ID加冒号, 第二个内容...],只需要跳过第一个空值,两两拼接即可:

import re
my_str = '610640: 168 hours 610835: till next day 14:00 617041:  168 hours 611486:720 hours'
match = re.split(r'(\d{6}:)', my_str)
# 跳过第一个空元素,步长为2遍历拼接,同时去除内容前后多余空格
result = [match[i] + match[i+1].strip() for i in range(1, len(match), 2)]
print(result)

运行结果和方法1完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:15:03