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

Python中如何以多组数字作为分隔符实现split操作?

用多组数字作为分隔符实现Python的split操作

嘿,作为Python新手碰到这个需求完全没问题,我来给你一步步讲清楚怎么实现用多组数字做分隔符的字符串分割!

普通的str.split()方法只能处理固定的单个分隔符,没法匹配“多组数字”这种模式化的分隔符,这时候咱们就得用到Python的re模块(正则表达式模块)里的re.split()函数,它支持用正则模式来匹配分隔符,完美解决你的问题。

两种常见场景的解决方案

场景1:任意连续数字作为分隔符

如果你的需求是把**任意一段连续的数字(比如"12"、"345"、"6789"这类)**都当成分隔符,那可以用这个正则模式:r'\d+'(\d匹配单个数字,+表示匹配1个或多个)。

示例代码:

import re

# 读取文件内容(实际替换成你的文件路径)
with open('your_file.txt', 'r', encoding='utf-8') as f:
    content = f.read()

# 用任意连续数字作为分隔符分割
split_result = re.split(r'\d+', content)

# 可选:过滤掉分割后可能出现的空字符串(比如内容开头/结尾是数字的情况)
cleaned_result = [part for part in split_result if part.strip()]

print(cleaned_result)

比如如果文件内容是:"Hello123World45Python6789",运行后会得到:['Hello', 'World', 'Python']

场景2:特定的几组数字作为分隔符

如果你的需求是**只把指定的几组数字(比如只有"123"、"456"、"789"这几个)**当成分隔符,那正则模式就改成r'(123|456|789)'(|表示“或”的逻辑,括号是捕获组,用来保留分隔符在结果里)。

示例代码:

import re

with open('your_file.txt', 'r', encoding='utf-8') as f:
    content = f.read()

# 用指定的几组数字作为分隔符,并且保留分隔符在结果中
split_result = re.split(r'(123|456|789)', content)

# 同样可以过滤空字符串
cleaned_result = [part for part in split_result if part.strip()]

print(cleaned_result)

比如文件内容是:"abc123def456ghi789jkl1011",运行后会得到:['abc', '123', 'def', '456', 'ghi', '789', 'jkl1011'](注意最后那段"1011"不是指定的分隔符,所以不会被分割)

如果不需要保留分隔符,只需要把括号去掉,改成r'123|456|789'就行,结果会变成:['abc', 'def', 'ghi', 'jkl1011']

小提示

  • 如果你不确定正则模式是否匹配正确,可以先用re.findall()测试一下,看看它能匹配到哪些内容,比如re.findall(r'\d+', content),这样就能确认分隔符是不是你想要的那些。
  • 读取文件时记得指定正确的编码(比如utf-8),避免出现乱码问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:45:36