美文网首页
4-1 如何拆分含有多种分隔符的字符串

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

作者: 马小跳_ | 来源:发表于2017-12-18 21:20 被阅读29次

    实际案例:
    我们要把某个字符串依据分隔符号拆分不同的字段,该字符串包含多种不同的分隔符
    例如: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 如何拆分含有多种分隔符的字符串

          本文链接:https://www.haomeiwen.com/subject/lxkvwxtx.html