码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-04-09 18:45:16      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:str   输出   划线   imp   ret   style   问题   []   import   

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

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

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

A、str.split()的用法

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

s = ab, cd,; aef;,; gh;aij|kl|amb\t op\tqr
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\t op\tqr‘]

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\top\tqr
print(mysplit(s, ;,|\t))
#

 

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

import re
s = ab,cd,;aef;,;gh;aij|kl|amb\top\tqr
s1 = re.split([,;|\t]*, s)
#去除s1中的空字符串
print([x for x in s1 if x])

 

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

标签:str   输出   划线   imp   ret   style   问题   []   import   

原文地址:https://www.cnblogs.com/volcao/p/8761483.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!