zoukankan      html  css  js  c++  java
  • 问题14:如何拆分含有多种分隔符的字符串

    问题14:如何拆分含有多种分隔符的字符串

     

    方法一:连续使用str.spilt()方法,每次处理一种分隔符;

    str.split()方法的应用:按某一种分隔符分割字符串;

    #不能用单词字符进行分割(字母、数字、下划线)

    A、str.split()的用法

    #此处是str.spilt(),而不是re.spilt()

    复制代码
    s = 'ab, cd,; aef;,; gh;aij|kl|amb	 op	qr'
    s1 = s.split()
    #A、默认状态按空格进行分割;
    print(s1)
    #输出:['ab,', 'cd,;', 'aef;,;', 'gh;aij|kl|amb', 'op', 'qr']
    
    s2 = s.split(',')
    #B、按某一符号进行分割
    print(s2)
    #输出:['ab', ' cd', '; aef;', '; gh;aij|kl|amb	 op	qr']
    复制代码

    B、代码

    复制代码
    def mysplit(s, ds):
        res = [s]
    
        for d in ds:
            t = []
            #t.extend(x.split(d)):此处,extend将x.aplit(d)返回的结果的元素,添加到t中
            [t.extend(x) for x in map(lambda x: x.split(d), res)]
            res = t
        #去除空列表里的空字符串
        return [x for x in res if x]
    
    s = 'ab,cd,;aef;,;gh;aij|kl|amb	op	qr'
    print(mysplit(s, ';,|	'))
    #
    复制代码

    方法二:使用正则表达式的re.split()方法,一次性拆分字符串(更快捷方便)

    import re
    s = 'ab,cd,;aef;,;gh;aij|kl|amb	op	qr'
    s1 = re.split('[,;|	]*', s)
    #去除s1中的空字符串 print([x for x in s1 if x])
  • 相关阅读:
    hdu 5072 Coprime (容斥)
    洛谷 P1411 树 (树形dp)
    Tr/ee AtCoder
    sys.path
    uname
    sys.platform
    Eclipse Basic
    Eclipse Color Theme
    Pydev
    scons
  • 原文地址:https://www.cnblogs.com/valorchang/p/11434586.html
Copyright © 2011-2022 走看看