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

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