Python如何拆分含有多种分隔符的字符串

 更新时间:2024年02月09日 09:52:29   作者:AllardZhao  
这篇文章主要介绍了Python如何拆分含有多种分隔符的字符串问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

如何拆分含有多种分隔符的字符串?

实际案例

我们要把某个字符串依据分隔符号拆分不同的字段

该字符串包含多种不同的分隔符

例如:

s = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'

其中"<,><;><|><\t>"都是分隔符号,如何处理?

解决方案

  • 方法1:连续使用str.split()方法,每次处理一种分隔符号。
  • 方法2:使用正则表达式的re.split()方法,一次性拆分字符串。

代码演示

# 单一分隔符
str1 = 'root 12125 0.0 0.0 33679596 904 ?? SNs 五02下午' \
       ' 0:00.01 /usr/libexec/per'
print(str1.split())
'''
 str.spilt用法介绍:
    split(sep=None, maxsplit=-1) -> list of  strings
    seq为分隔符参数默认为空白字符(whitespace),包含空格、制表符(\t)、换行(\n)、回车(\r)
    seq不同同时传入多个分隔符,只能每次传入一种
'''
 
 
# 多种不同的分隔符
# 方法1:连续多次使用str.split方法,每次处理一种分隔符
def my_split(s, ds):
    #  s1:待分隔字符串,ds:包含所有分隔符的字符串
    """
     需要注意有种情形是连续两个分隔符,如'i,,j'
     列表中会出现空字符串,此时就需要对结果进行过滤。
    """
    res = [s]
    for d in ds:
        t = []
        list(map(lambda x: t.extend(x.split(d)), res))
        res = t
    # 使用列表解析过滤空字符串
    return [x for x in res if x]
 
 
s1 = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'
print(my_split(s1, ';,|\t'))
 
# 方法2(推荐):使用正则表达式re.split
'''
    re.split方法介绍:
        split(pattern, string, maxsplit=0, flags=0)
        pattern为正则表达式,可以使用正则进行多种分隔符切割
'''
import re
 
s2 = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'
# 中括号中为分隔符,+号表示前面字符1个或多个
str2 = re.split('[,;\t|]+', s2)
print(str2)
 
'''
 需要注意的是,对于单一分隔符的情况使用str.split效率会更快一些,
 但是不能同时处理多个分隔符,对于多个分隔符情况使用re.split。
'''

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 浅谈python数据类型及类型转换

    浅谈python数据类型及类型转换

    这篇文章主要介绍了浅谈python数据类型及类型转换,介绍了python中的数据类型,以及数据的不可变性,还有字符串,列表等相关内容,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 浅析PyCharm 的初始设置(知道)

    浅析PyCharm 的初始设置(知道)

    这篇文章主要介绍了PyCharm 的初始设置(知道),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • python基于paramiko将文件上传到服务器代码实现

    python基于paramiko将文件上传到服务器代码实现

    这篇文章主要介绍了python基于paramiko将文件上传到服务器代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 关于python之字典的嵌套,递归调用方法

    关于python之字典的嵌套,递归调用方法

    今天小编就为大家分享一篇关于python之字典的嵌套,递归调用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python打印n位数“水仙花数”(实例代码)

    python打印n位数“水仙花数”(实例代码)

    这篇文章主要介绍了python打印n位数“水仙花数”,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • python环境配置方式(服务器+本地)

    python环境配置方式(服务器+本地)

    这篇文章详细介绍了在服务器上安装和配置Anaconda3、TensorFlow、PyTorch等深度学习环境的步骤,包括下载、初始化、创建环境、验证安装以及解决一些常见问题
    2025-01-01
  • 在 Python 中使用通配符匹配字符串的方法

    在 Python 中使用通配符匹配字符串的方法

    这篇文章主要介绍了在 Python 中使用通配符匹配字符串的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • python 实现控制鼠标键盘

    python 实现控制鼠标键盘

    这篇文章主要介绍了python 控制鼠标键盘的示例,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-11-11
  • Python机器学习多层感知机原理解析

    Python机器学习多层感知机原理解析

    最简单的深度网络称为多层感知机,它们由多层神经元组成,每一层都与下面一层(从中接收输入)和上面一层(反过来影响当前层的神经元)完全相连
    2021-10-10
  • Pytorch实现简单自定义网络层的方法

    Pytorch实现简单自定义网络层的方法

    这篇文章主要给大家介绍了关于Pytorch实现简单自定义网络层的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-05-05

最新评论