4-1 如何拆分含有多种分隔符的字符串

实际案例:
我们要把某个字符串依据分隔符号拆分不同的字段,该字符串包含多种不同的分隔符
例如:s = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'
其中(;,|\t)都是分割符

解决方案:
方法一:连续使用str.split()方法,每次处理一种分隔符号
方法二:使用正则表达式的re.split()方法,一次性拆分字符串(推荐)

方式一:

def mySplit(s,ds):
    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]  # 防止连续的两个分隔符时,出现空元素的情况

s = 'ab;cd|efg|hi,,jkl|mn\topq;rst,uvw\txyz'
res = mySplit(s,';,|\t')
print(res)

方式二:

"""
split(pattern, string, maxsplit=0, flags=0)
    Split the source string by the occurrences of the pattern,
    returning a list containing the resulting substrings.
"""


import re
s = 'ab;cd|efg|hi,,jkl|mn\topq;rst,uvw\txyz'
print(re.split(r'[;,\t|]+',s))

总结:
对于单一分割符的情况,切分字符串使用字符串的split方法,速度更快。
对于多个分割符的情况,切分字符串使用re的split方法。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容