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)行過濾。 """ 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] 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 greenlet實(shí)現(xiàn)原理和使用示例
這篇文章主要介紹了Python greenlet實(shí)現(xiàn)原理和使用示例,greenlet是Python中的一個(gè)并行處理庫,需要的朋友可以參考下2014-09-09python3報(bào)錯(cuò)check_hostname?requires?server_hostname的解決
這篇文章主要介紹了python3報(bào)錯(cuò)check_hostname?requires?server_hostname的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Python進(jìn)度條神器tqdm使用實(shí)例詳解
Python進(jìn)度條神器tqdm是一個(gè)快速、可擴(kuò)展的進(jìn)度條工具,可以輕松地為Python腳本添加進(jìn)度條。它可以在循環(huán)中自動(dòng)計(jì)算進(jìn)度,并在終端中顯示進(jìn)度條,讓用戶了解程序的運(yùn)行情況。tqdm還支持多線程和多進(jìn)程,并且可以自定義進(jìn)度條的樣式和顯示方式。2023-06-06Python數(shù)據(jù)分析中常見統(tǒng)計(jì)方法詳解
數(shù)據(jù)分析是現(xiàn)代社會(huì)中不可或缺的一部分,通過對(duì)數(shù)據(jù)的統(tǒng)計(jì)和分析,我們可以得出有用的信息和見解,本文將介紹在?Python?中常見的數(shù)據(jù)統(tǒng)計(jì)方法,希望對(duì)大家有所幫助2024-02-02python如何實(shí)現(xiàn)excel數(shù)據(jù)添加到mongodb
本文介紹了python是如何實(shí)現(xiàn)excel數(shù)據(jù)添加到mongodb,為了將數(shù)據(jù)導(dǎo)入mongodb,引入了pymongo,xlrd包,需要的朋友可以參考下2015-07-07python實(shí)現(xiàn)密度聚類(模板代碼+sklearn代碼)
這篇文章主要介紹了python實(shí)現(xiàn)密度聚類(模板代碼+sklearn代碼),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04