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

Python字符串分割:如何在指定词汇/助词前方分割并保留该词汇

字符串分割需求与实现

常规分割的问题

现有如下代码对路径字符串进行分割:

s = "/works/proj/kod/resources/excel/words/tam.xls"
p = s.split("/kod")
print(p)

运行结果为:

['/works/proj', '/resources/excel/words/tam.xls']

可以看到split方法会把分隔符/kod本身从结果中移除,但实际需要在分隔符前方进行分割,保留分隔符在第二部分的开头,期望得到如下结果:

['/works/proj', '/kod/resources/excel/words/tam.xls']

解决方案

方案1:字符串定位与切片

通过find方法找到分隔符的起始位置,再对原字符串进行切片拆分,无需额外导入模块:

s = "/works/proj/kod/resources/excel/words/tam.xls"
sep = "/kod"
# 定位分隔符的起始索引
sep_index = s.find(sep)
if sep_index != -1:
    # 拆分字符串:从开头到分隔符前,以及从分隔符开始到结尾
    result = [s[:sep_index], s[sep_index:]]
else:
    # 未找到分隔符时返回原字符串组成的列表
    result = [s]
print(result)

方案2:正则零宽断言分割

借助正则的正向预查(?=...),可以在不消耗分隔符的前提下定位分割位置,精准实现需求:

import re

s = "/works/proj/kod/resources/excel/words/tam.xls"
sep = "/kod"
# 用re.escape处理分隔符,避免特殊字符干扰正则匹配
result = re.split(f'(?={re.escape(sep)})', s, maxsplit=1)
print(result)

maxsplit=1参数确保只执行一次分割,避免出现过多拆分结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:40:36