Python字符串分割方法總結
阿新 • • 發佈:2018-05-19
google string split 長度 .html 例如 more class rev
Python中字符串分割的常用方法是直接調用字符串的str.split
方法,但是其只能指定一種分隔符,如果想指定多個分隔符拆分字符串需要用到re.split
方法(正則表達式的split方法)。
str.split
字符串的split方法函數原型如下,其中sep為指定的分隔符,maxsplit為最大分割次數:
1 | str.split(sep=None, maxsplit=-1) |
默認情況下,不指定分隔符時則以空白字符(空格,回車,制表符等)作為分隔符拆分字符串:
1 2 3 4 |
|
在結果列表中,不會包含空字符串:
1 2 3 4 | ‘A‘, ‘B‘, ‘C‘, ‘D‘] >>> | [
指定分隔符:
1 2 3 4 5 6 7 |
‘www‘, ‘google‘, ‘com‘] |
[
指定最大分割次數:
1 2 3 4 5 6 7 |
‘www‘, ‘google.com‘]
[‘AA‘, ‘BB‘, ‘CC||DD‘] |
[
由此可見,當指定最大分割次數maxsplit
時,結果列表長度為maxsplit+1
。
但是,字符串的split方法只能指定一個分隔符,如下:
1 | s = ‘AAAA,BBBB:CCCC;DDDD‘ |
如果想指定逗號、冒號、分號都做為分隔符,字符串的split方法是做不到的,此時要用正則表達式中的split方法。
re.split
正則表達式的split方法原型如下,其中pattern為指定的分隔正則表達式,string為要分割的字符串,maxsplit為最大分割次數,flags為正則表達式用到的通用標誌:
1 | re.split(pattern, string, maxsplit=0, flags=0) |
參考示例:
1 2 3 4 5 | ‘AAAA‘, ‘BBBB‘, ‘CCCC‘, ‘DDDD‘] >>> | [
如果在正則表達式裏使用了捕獲組也就是括號,則結果列表中也會包含捕獲的內容:
1 2 3 4 5 | ‘AAAA‘, ‘,‘, ‘BBBB‘, ‘:‘, ‘CCCC‘, ‘;‘, ‘DDDD‘] >>> | [
如果不想在結果中看到分隔符,但仍然想用括號對正則表達式模式進行分組,可以使用非捕獲組,以(?:...)
的形式指定,示例如下:
1 2 3 4 5 | ‘AAAA‘, ‘BBBB‘, ‘CCCC‘, ‘DDDD‘] >>> | [
指定最大分割次數:
1 2 3 4 5 6 7 | ‘AAAA‘, ‘BBBB:CCCC;DDDD‘] [‘AAAA‘, ‘BBBB‘, ‘CCCC;DDDD‘] >>> | [
由此可見,當指定最大分割次數maxsplit
時,結果列表長度為maxsplit+1
。
指定正則表達式中的通用標誌flags:
1 2 3 4 | ‘0‘, ‘3‘, ‘9‘] >>> | [
原文鏈接:http://www.revotu.com/python-split-string-methods.html
Python字符串分割方法總結