一、 引言
在《第11.2節(jié) Python 正則表達(dá)式支持函數(shù)概覽》介紹了re模塊的主要函數(shù),在《第11.3節(jié) Python正則表達(dá)式搜索支持函數(shù)search、match、fullmatch、findall、finditer》重點(diǎn)介紹了幾個(gè)搜索函數(shù),后續(xù)章節(jié)將介紹re模塊的其他函數(shù),本節(jié)先介紹re.split函數(shù)的功能。
二、 語法釋義
-
調(diào)用語法:
re.split(pattern, string, maxsplit=0, flags=0) -
參數(shù)及返回結(jié)果釋義:
1)這個(gè)函數(shù)的功能與字符串的split方法有些類似,只是字符串內(nèi)split是固定分隔符,而這是用 正則表達(dá)式來分開 string,分開的字符存放在返回的列表元素內(nèi)。
2)如果在 pattern 對(duì)應(yīng)正則表達(dá)式中存在元字符“()”,且能匹配到搜索文本,那么每個(gè)匹配組里的字符也會(huì)按順序包含在列表的單獨(dú)元素里。
3)如果 maxsplit 非零, 最多進(jìn)行 maxsplit 次分隔, 剩下的字符全部返回到列表的最后一個(gè)元素。 - 注意:如果在string的結(jié)尾或開頭能匹配pattern,則會(huì)在返回列表的最后一個(gè)元素或第一個(gè)元素是空字符串。
三、 案例
>>> re.split('\W+','Learning Python with LaoYuan,LaoYuanPython accompanies you to progress!')
['Learning', 'Python', 'with', 'LaoYuan', 'LaoYuanPython', 'accompanies', 'you', 'to', 'progress', '']
>>> re.split('(\W+)','Learning Python with LaoYuan,LaoYuanPython accompanies you to progress!')
['Learning', ' ', 'Python', ' ', 'with', ' ', 'LaoYuan', ',', 'LaoYuanPython', ' ', 'accompanies', ' ', 'you', ' ', 'to', ' ', 'progress', '!', '']
>>>
上述案例中的匹配模式就是搜索非單詞字符作為分隔符(請(qǐng)參考《第11.15節(jié) Python正則表達(dá)式轉(zhuǎn)義符定義的特殊序列》),第一個(gè)語句是沒有組匹配模式,返回列表的最后一個(gè)元素為空字符串,第二個(gè)是有組匹配模式,所有非單詞字符都被作為列表的元素返回了。
我們?cè)倏匆粋€(gè)案例:
>>> re.split('(\W*)','Hello,world')
['', '', 'H', '', 'e', '', 'l', '', 'l', '', 'o', ',', '', '', 'w', '', 'o', '', 'r', '', 'l', '', 'd', '', '']
結(jié)果是不是很意外?請(qǐng)大家思考一下為什么會(huì)這樣。具體分析請(qǐng)參考《Python正則表達(dá)式W+和W*匹配過程的深入分析》。
老猿Python,跟老猿學(xué)Python!
博客地址:https://blog.csdn.net/LaoYuanPython
請(qǐng)大家多多支持,點(diǎn)贊、評(píng)論和加關(guān)注!謝謝!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
