8 拆分含有多種分隔符的字串

2021-09-27 03:05:18 字數 2308 閱讀 8910

例如,某個字串包含多種不同的分隔符,如:

s = 'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'
其中,;|\t都是分隔符號。

要求:把該字串根據分隔符號拆分不同的字段。

解決方案:

連續使用字串的split()方法,每次處理一種分隔符號;

使用正規表示式的re.split()方法(推薦)。

t =

''t.split(sep, maxsplit)

返回乙個字串中單詞組成的列表,使用sep作為分隔符字串。

sep表示用來分割字串的分隔符,none(預設值)表示根據任何空格進行分割;maxsplit表示最大分割次數,-1(預設值)表示沒有限制。

t =

t.extend(iterable)

extend()方法用於在列表末尾一次性追加另乙個序列中的多個值(用新列表擴充套件原來的列表),可將多維列表轉換為一維列表。

`sum

()`用於求和,iterable, start)

sum()用於求和,預設start=0。對於乙個多維列表,可以將start=,這樣可以得到乙個一維列表。

s =

'ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'

defmy_split

(s, seps)

: res =

[s]for sep in seps:

t =list

(map

(lambda ss: t.extend(ss.split(sep)

), res)

) res = t

return res

answer = my_split(s,

',;|\t'

)print

(answer)

['ab'

,'cd'

,'efg'

,'hi'

,'jkl'

,'mn'

,'opq'

,'rst'

,'uvw'

,'xyz'

]#結果

上面的方法可行,但使用reduce更為簡單。

from functools import

reduce

s ='ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'

defmy_split

(s, seps)

: res =

reduce

(lambda t, sep:

sum(

map(

lambda ss: ss.split(sep)

, t),[

]), seps,

[s])

return res

answer = my_split(s,

',;|\t'

)print

(answer)

['ab'

,'cd'

,'efg'

,'hi'

,'jkl'

,'mn'

,'opq'

,'rst'

,'uvw'

,'xyz'

]#結果

import re

s ='ab;cd|efg|hi,jkl|mn\topq;rst,uvw\txyz'

answer = re.split(

'[,;|\t]+'

, s)

print

(answer)

['ab'

,'cd'

,'efg'

,'hi'

,'jkl'

,'mn'

,'opq'

,'rst'

,'uvw'

,'xyz'

]#結果

可以看到,在處理多種分隔符時,方案2比方案1更為簡便。當然,對於單個分隔符的處理,建議使用split()方法而不是re.split()方法。

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

coding utf 8 實際案例 我們要某個字串一句分隔符號拆分不同的字段,該字串包含多種不同的分隔符,例如 s ab cd efg hi,jkl mn topq rst,uvw txyz 其中 t 都是分隔符號,如何處理?解決方案 方法一 連續使用str.split 方法,每次處理一種分隔符號....

如何拆分含有多種分隔符的字串?

需求 我們要把某個字串依據分隔符號拆分不同的字段,該字串包含多種不同的分隔符,例如 s ab cd efg hj,jkl mn tpq rst,uvw txyz 其中 t 都是分隔符號,如何處理?思路 1 連續使用str.split 方法,每次處理一種符號 2 使用正規表示式re.split 方法,...

Python 如何拆分含有多種分隔符的字串

案例 把某個字串依據分隔符拆分,該字元包含不同的多種分隔符,如下 s 12 7.osjd jshdjdknx 其中 是分隔符 有哪些解決方案?方法1 通過str.split 方法,每次處理乙個分隔符 usr bin python3 def go split s,symbol result s for...