用多個分隔符切分字符串---re.split()


問題/需求:

  需要將字符串切分,但是分隔符在整個字符串中並不一致

  (即:需要用多個分隔符切分字符串

 

str.split()方法不可行:

  只支持單一分隔符不支持正則及多個切割符號不感知空格的數量

 

解決辦法:

  re.split()

  適用:多個 分隔符,切割功能非常強大

  語法: re.split(pattern, string, maxsplit=0)

  通過正則表達式將字符串分離。如果用括號將正則表達式括起來,那么匹配的字符串也會被列入到list中返回。maxsplit是分離的次數,maxsplit=1分離一次,默認為0,不限制次數。

  例子:

>>> import re
>>> line = 'aa bb cc dd; ee ff. gg- hh ii kk'
>>> line
'aa bb cc dd; ee ff. gg- hh ii kk'

  

  單字符切割:

>>> re.split(';',line)
['aa bb cc dd', ' ee ff. gg- hh ii kk']

  

  兩個字符以上切割,放在 [ ] 中(不保留分隔符):

>>> re.split('[;.-]',line)
['aa bb cc dd', ' ee ff', ' gg', ' hh ii kk']

  

  使用 ( ) 捕獲分組(保留分割符):

>>> re.split('([;,])',line)
['aa bb cc dd', ';', ' ee ff', '.', ' gg', '-', ' hh ii kk']

  

 使用注意:

pattern中有問號時, 要加 \ 轉義,不然切分完全會不同。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM