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

Python拆分字符串保留分隔符,re.split正则写法报错问题求解

问题原因

你的正则表达式写法存在量词作用范围错误:
你写的(__label__{1,2}:)中,{1,2}量词仅作用于它前面紧邻的最后一个_字符,该正则实际匹配的是__label_:(1个末尾下划线)或__label__:(2个末尾下划线)的格式,完全没有覆盖你实际场景中__label__后面跟随的数字部分,所以正则匹配不到任何内容,split操作直接返回了原字符串。

修正方案

你需要匹配__label__后跟随任意位数的数字,再加冒号的格式,正则调整如下:

import re
line = "__label__2:somedata"
# 正则说明:__label__ 固定前缀 + \d+ 匹配1位及以上数字 + : 冒号,括号包裹保留分隔符
p = re.split(r"(__label__\d+:)", line)
# 过滤split生成的开头空字符串
result = [item for item in p if item]
print(result)
# 输出:['__label__2:', 'somedata']

该写法也兼容你提到的多位数标签场景,比如输入__label__43:somedata也会输出['__label__43:', 'somedata']。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:15:00