Python如何拆分含有多種分隔符的字符串
如何拆分含有多種分隔符的字符串?
實(shí)際案例
我們要把某個(gè)字符串依據(jù)分隔符號(hào)拆分不同的字段
該字符串包含多種不同的分隔符
例如:
s = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'
其中"<,><;><|><\t>"都是分隔符號(hào),如何處理?
解決方案
- 方法1:連續(xù)使用str.split()方法,每次處理一種分隔符號(hào)。
- 方法2:使用正則表達(dá)式的re.split()方法,一次性拆分字符串。
代碼演示
# 單一分隔符
str1 = 'root 12125 0.0 0.0 33679596 904 ?? SNs 五02下午' \
' 0:00.01 /usr/libexec/per'
print(str1.split())
'''
str.spilt用法介紹:
split(sep=None, maxsplit=-1) -> list of strings
seq為分隔符參數(shù)默認(rèn)為空白字符(whitespace),包含空格、制表符(\t)、換行(\n)、回車(\r)
seq不同同時(shí)傳入多個(gè)分隔符,只能每次傳入一種
'''
# 多種不同的分隔符
# 方法1:連續(xù)多次使用str.split方法,每次處理一種分隔符
def my_split(s, ds):
# s1:待分隔字符串,ds:包含所有分隔符的字符串
"""
需要注意有種情形是連續(xù)兩個(gè)分隔符,如'i,,j'
列表中會(huì)出現(xiàn)空字符串,此時(shí)就需要對(duì)結(jié)果進(jìn)行過(guò)濾。
"""
res = [s]
for d in ds:
t = []
list(map(lambda x: t.extend(x.split(d)), res))
res = t
# 使用列表解析過(guò)濾空字符串
return [x for x in res if x]
s1 = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'
print(my_split(s1, ';,|\t'))
# 方法2(推薦):使用正則表達(dá)式re.split
'''
re.split方法介紹:
split(pattern, string, maxsplit=0, flags=0)
pattern為正則表達(dá)式,可以使用正則進(jìn)行多種分隔符切割
'''
import re
s2 = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'
# 中括號(hào)中為分隔符,+號(hào)表示前面字符1個(gè)或多個(gè)
str2 = re.split('[,;\t|]+', s2)
print(str2)
'''
需要注意的是,對(duì)于單一分隔符的情況使用str.split效率會(huì)更快一些,
但是不能同時(shí)處理多個(gè)分隔符,對(duì)于多個(gè)分隔符情況使用re.split。
'''總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談python數(shù)據(jù)類型及類型轉(zhuǎn)換
這篇文章主要介紹了淺談python數(shù)據(jù)類型及類型轉(zhuǎn)換,介紹了python中的數(shù)據(jù)類型,以及數(shù)據(jù)的不可變性,還有字符串,列表等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
python基于paramiko將文件上傳到服務(wù)器代碼實(shí)現(xiàn)
這篇文章主要介紹了python基于paramiko將文件上傳到服務(wù)器代碼實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
關(guān)于python之字典的嵌套,遞歸調(diào)用方法
今天小編就為大家分享一篇關(guān)于python之字典的嵌套,遞歸調(diào)用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
python打印n位數(shù)“水仙花數(shù)”(實(shí)例代碼)
這篇文章主要介紹了python打印n位數(shù)“水仙花數(shù)”,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
python環(huán)境配置方式(服務(wù)器+本地)
這篇文章詳細(xì)介紹了在服務(wù)器上安裝和配置Anaconda3、TensorFlow、PyTorch等深度學(xué)習(xí)環(huán)境的步驟,包括下載、初始化、創(chuàng)建環(huán)境、驗(yàn)證安裝以及解決一些常見(jiàn)問(wèn)題2025-01-01
python 實(shí)現(xiàn)控制鼠標(biāo)鍵盤
這篇文章主要介紹了python 控制鼠標(biāo)鍵盤的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11
Python機(jī)器學(xué)習(xí)多層感知機(jī)原理解析
最簡(jiǎn)單的深度網(wǎng)絡(luò)稱為多層感知機(jī),它們由多層神經(jīng)元組成,每一層都與下面一層(從中接收輸入)和上面一層(反過(guò)來(lái)影響當(dāng)前層的神經(jīng)元)完全相連2021-10-10
Pytorch實(shí)現(xiàn)簡(jiǎn)單自定義網(wǎng)絡(luò)層的方法
這篇文章主要給大家介紹了關(guān)于Pytorch實(shí)現(xiàn)簡(jiǎn)單自定義網(wǎng)絡(luò)層的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-05-05

