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

Python中如何用多分隔符分割字符串并获取所用分隔符?

在Python中按多分隔符分割字符串并保留分隔符列表

这里提供两种实用的方法实现你的需求:

方法1:利用正则split的捕获分组

通过正则表达式的捕获分组,re.split会将分隔符包含在拆分结果中,之后只需通过切片拆分数字和分隔符即可:

import re

string = '1000+20-12+123-165-564'
# 使用捕获分组匹配+或-,拆分时保留分隔符
split_parts = re.split(r'([+-])', string)
# 偶数索引位置是数字(从0开始)
numbers = split_parts[::2]
# 奇数索引位置是分隔符
delimiters = split_parts[1::2]

print(numbers)   # 输出: ['1000', '20', '12', '123', '165', '564']
print(delimiters)# 输出: ['+', '-', '+', '-', '-']

如果字符串开头或结尾可能出现分隔符(比如'+1000-20'),可以给数字列表加个过滤:

numbers = [part for part in split_parts[::2] if part]

方法2:遍历正则匹配结果

直接匹配所有数字和分隔符,逐个判断类型并收集:

import re

string = '1000+20-12+123-165-564'
numbers = []
delimiters = []
# 匹配连续数字或单个+/-的正则模式
pattern = re.compile(r'\d+|[+-]')

for match in pattern.finditer(string):
    item = match.group()
    if item.isdigit():
        numbers.append(item)
    else:
        delimiters.append(item)

print(numbers)   # 输出: ['1000', '20', '12', '123', '165', '564']
print(delimiters)# 输出: ['+', '-', '+', '-', '-']

这种方法逻辑更直观,适合需要对每个匹配项做额外处理的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:51:57