在使用 Python 處理字符串的時候,有時候會需要分割字符。 分隔符比如下劃線 “_”,比如 “.”之類的。
一個分隔符 比如對于文件名 20191022_log.zip,我們想要獲取前面的日期。 如果日期格式固定,對于這樣的字符串我們當然可以使用索引進行切割。 當然也可以使用字符串的內建函數 split(). 結果返回的是一個列表。 如果分隔符不在字符串之列,那么返回的也是一個列表,不過元素只有一個,那就是這個字符串自身: 多個分隔符 還是上面那個例子,如果字符串是 ‘log_20191022.zip' 這個形式,想要獲取日期,有兩種方法, 一種方法是使用能夠 下劃線作為分隔符獲取結果的第一個元素,然后再使用 點 '.'作為分隔符再劃分一遍。 另一種方法就是直接使用 re.split() 。
因為 字符串的 split() 函數不能接受兩個分隔符作為參數。 re.split() 的使用方法如下: 以豎杠 | 作為分割分開兩個分隔符,如果有多個分隔符,則可以使用多個 | ,在上述例子中,因為點 . 是在正則里有特殊的匹配含義,所以需要使用 \ 反斜杠對其進行轉義。
字符串方法str.split()幫助:
>>> help(str.split)
Help on method_descriptor:
split(self, /, sep=None, maxsplit=-1)
Return a list of the words in the string, using sep as the delimiter string.
sep
The delimiter according which to split the string.
None (the default value) means split according to any whitespace,
and discard empty strings from the result.
maxsplit
Maximum number of splits to do.
-1 (the default value) means no limit.
>>>
用法: string.split( sep = None, maxsplit = -1)
string 要操作字符串
sep 分隔符,默認值為whitespace空白符
maxsplit 最大分割次數,默認值為-1,表示無限制
如果同時有多個分隔符怎么分割呢?
可以用循環多次分割來實現,例如:
>>> s = '6[5,12]3[2,6]1;35]67[8;9;11]12'
>>> for j in '[],;':
t=[i.split(j) for i in t]
t=[i for j in t for i in j]
>>> t
['6', '5', '12', '3', '2', '6', '1', '35', '67', '8', '9', '11', '12']
>>>
懂正則表達式的可以一步到位:
>>> import re
>>> s = '6[5,12]3[2,6]1;35]67[8;9;11]12'
>>> re.split('\[|\]|,|;',s)
['6', '5', '12', '3', '2', '6', '1', '35', '67', '8', '9', '11', '12']
到此這篇關于Python分割字符串時有多個分隔符怎么處理的文章就介紹到這了,更多相關Python分割字符串時有多個分隔符怎么處理內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python入門字符串拼接\截取\轉數字理解學習
- python入門課程第五講之序列和字符串
- Python如何使用print()函數輸出格式化字符串
- 10個有用的Python字符串函數小結
- Python基本數據類型之字符串str
- Python數字/字符串補零操作實例代碼
- python如何正確的操作字符串
- python字符串的多行輸出的實例詳解
- Python的文本常量與字符串模板之string庫
- 關于Python中字符串的各種操作