从基础到进阶详解Python中字符串分割的常见方法

 更新时间:2026年04月15日 08:16:04   作者:detayun  
字符串分割是编程中常见的操作,本文全面介绍了Python中的字符串分割方法,涵盖基础操作和高级技巧,希望可以帮助大家掌握Python字符串分割的技巧

字符串分割是编程中常见的操作,无论是处理日志文件、解析CSV数据,还是提取URL参数,都需要用到字符串分割。Python提供了多种字符串分割方法,包括基础的split()rsplit()partition(),以及更强大的正则表达式re.split()。本文将详细介绍这些方法,并给出实际案例,帮助你掌握Python字符串分割的技巧。

1. 基础字符串分割方法

1.1str.split()—— 最常用的分割方法

split() 是Python字符串最常用的分割方法,默认按空格分割,也可以指定分隔符。

语法

str.split(sep=None, maxsplit=-1)
  • sep:分隔符,默认为None(按空格分割)。
  • maxsplit:最大分割次数,默认为-1(不限制)。

示例

s = "apple banana orange"
print(s.split())  # 默认按空格分割
# 输出: ['apple', 'banana', 'orange']

s = "apple,banana,orange"
print(s.split(','))  # 按逗号分割
# 输出: ['apple', 'banana', 'orange']

s = "apple,banana,orange,grape"
print(s.split(',', maxsplit=2))  # 最多分割2次
# 输出: ['apple', 'banana', 'orange,grape']

1.2str.rsplit()—— 从右向左分割

rsplit()split() 类似,但从右向左分割,适用于需要从字符串末尾开始分割的情况。

示例

s = "apple,banana,orange,grape"
print(s.rsplit(',', maxsplit=1))  # 从右向左最多分割1次
# 输出: ['apple,banana,orange', 'grape']

1.3str.partition()—— 分割成3部分

partition() 将字符串按第一个匹配的分隔符分割成3部分:

  • 分隔符左边的部分
  • 分隔符本身
  • 分隔符右边的部分

语法

str.partition(sep)

sep:分隔符,必须指定。

示例

s = "apple,banana,orange"
left, sep, right = s.partition(',')
print(left, sep, right)
# 输出: apple , banana,orange

str.rpartition()

rpartition()partition() 类似,但从右向左分割

2. 高级字符串分割方法

2.1str.splitlines()—— 按行分割

splitlines()换行符\n\r\r\n)分割字符串,适用于处理多行文本。

示例

s = "Hello\nWorld\nPython"
print(s.splitlines())
# 输出: ['Hello', 'World', 'Python']

2.2re.split()—— 正则表达式分割

re.split() 使用正则表达式进行分割,适用于复杂分隔符(如多个不同字符)。

语法

import re
re.split(pattern, string, maxsplit=0, flags=0)
  • pattern:正则表达式分隔符。
  • maxsplit:最大分割次数,默认为0(不限制)。
  • flags:正则标志(如re.IGNORECASE)。

示例

(1) 按多个不同字符分割

import re

s = "apple,banana;orange|grape"
parts = re.split(r'[,;|]', s)  # 按逗号、分号、竖线分割
print(parts)
# 输出: ['apple', 'banana', 'orange', 'grape']

(2) 按连续空格分割

s = "apple   banana  orange"
parts = re.split(r'\s+', s)  # 按1个或多个空格分割
print(parts)
# 输出: ['apple', 'banana', 'orange']

(3) 保留分隔符(使用捕获组)

s = "appleDBbananaDBorange"
parts = re.split(r'(DB)', s)  # 使用捕获组 (DB) 保留分隔符
print(parts)
# 输出: ['apple', 'DB', 'banana', 'DB', 'orange']

(4) 过滤掉分隔符

s = "appleDBbananaDBorange"
parts = [part for part in re.split(r'(DB)', s) if part != 'DB']  # 过滤掉 DB
print(parts)
# 输出: ['apple', 'banana', 'orange']

3. 实际应用案例

案例1:解析CSV数据

import re

csv_data = "Name,Age,City\nAlice,25,New York\nBob,30,London"
lines = csv_data.splitlines()  # 按行分割
for line in lines[1:]:  # 跳过标题行
    fields = re.split(r',(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)', line)  # 处理带引号的CSV
    print(fields)
# 输出:
# ['Alice', '25', 'New York']
# ['Bob', '30', 'London']

案例2:提取URL参数

import re

url = "https://www.example.com/search?q=python&lang=en&page=1"
query = url.split('?')[1]  # 提取查询部分
params = re.split(r'&', query)  # 按 & 分割参数
print(params)
# 输出: ['q=python', 'lang=en', 'page=1']

案例3:分割日志文件

log = "2023-01-01 12:00:00 ERROR: File not found"
date, time, level, message = log.split(' ', maxsplit=3)  # 最多分割3次
print(date, time, level, message)
# 输出: 2023-01-01 12:00:00 ERROR: File not found

4. 总结

方法适用场景示例
str.split()简单分割(空格、逗号等)"a,b,c".split(',')['a', 'b', 'c']
str.rsplit()从右向左分割"a,b,c".rsplit(',', 1)['a,b', 'c']
str.partition()分割成3部分"a,b,c".partition(',')('a', ',', 'b,c')
str.splitlines()按行分割"a\nb\nc".splitlines()['a', 'b', 'c']
re.split()复杂分隔符(正则)`re.split(r’[,;

最佳实践

  1. 简单分割split()rsplit()
  2. 需要保留分隔符partition()re.split(r'(...)', ...)
  3. 复杂分隔符(如多个不同字符)用 re.split()
  4. 处理多行文本splitlines()

掌握这些方法后,你可以轻松应对各种字符串分割需求!

到此这篇关于从基础到进阶详解Python中字符串分割的常见方法的文章就介绍到这了,更多相关Python字符串分割内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中的enum的使用方法

    Python中的enum的使用方法

    这篇文章主要介绍了Python中的enum的使用方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-08-08
  • python实现梯度下降求解逻辑回归

    python实现梯度下降求解逻辑回归

    这篇文章主要为大家详细介绍了python实现梯度下降求解逻辑回归,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 一文带你探索Python中的eventlet通信机制

    一文带你探索Python中的eventlet通信机制

    这篇文章主要为大家详细介绍了Python中的eventlet通信机制的相关知识,文中的示例代码讲解详细,对我们深入了解Python有一定帮助,需要的可以参考一下
    2023-06-06
  • Python实现区间调度算法

    Python实现区间调度算法

    区间调度算法是一种在给定的一组任务中,选择尽可能多的相互不冲突的任务的算法,本文主要介绍了如何使用Python实现区间调度算法,有需要的可以参考下
    2024-10-10
  • Python中函数的创建及调用

    Python中函数的创建及调用

    这篇文章主要介绍了Python中函数的创建及调用,创建函数也称为定义一个函数,可以理解为创建一个具有某种用途的工具。调用函数也就是执行函数。如果把创建的函数理解为创建一个具体有某种用途的工具,那么调用函数就相当于使用该工具
    2022-06-06
  • pytest+allure环境搭建+自动化实践过程

    pytest+allure环境搭建+自动化实践过程

    这篇文章主要介绍了pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Python获取CPU、内存使用率以及网络使用状态代码

    Python获取CPU、内存使用率以及网络使用状态代码

    这篇文章主要介绍了Python获取CPU使用率、内存使用率、网络使用状态的相关代码,对此有需要的朋友一起测试下。
    2018-02-02
  • Ubuntu下创建虚拟独立的Python环境全过程

    Ubuntu下创建虚拟独立的Python环境全过程

    virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。本篇文章讲述如何在Linux以及Ubuntu中创建Python虚拟环境,以及Virtualenvwrapper的安装使用,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • Python使用re模块实现正则表达式操作指南

    Python使用re模块实现正则表达式操作指南

    在Python中需要通过正则表达式对字符串进⾏匹配的时候,可以使⽤⼀个python自带的模块,名字为re,下面这篇文章主要给大家介绍了关于Python使用re模块实现正则表达式操作的相关资料,需要的朋友可以参考下
    2022-07-07
  • Python中pinyin库实现汉字转换为拼音

    Python中pinyin库实现汉字转换为拼音

    python-pinyin是一个用于汉字转拼音的Python库,支持多音字、多种拼音风格和自定义词典,本文就来介绍一下Python中pinyin库实现汉字转换为拼音,感兴趣的可以了解一下
    2025-01-01

最新评论