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方法。

你可能感兴趣的:(4-1 如何拆分含有多种分隔符的字符串)