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

實際案例:
我們要把某個字符串依據(jù)分隔符號拆分不同的字段,該字符串包含多種不同的分隔符
例如:s = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'
其中(;,|\t)都是分割符

解決方案:
方法一:連續(xù)使用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]  # 防止連續(xù)的兩個分隔符時,出現(xiàn)空元素的情況

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))

總結(jié):
對于單一分割符的情況,切分字符串使用字符串的split方法,速度更快。
對于多個分割符的情況,切分字符串使用re的split方法。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容