Python 正則表達式:split
- 2020 年 1 月 14 日
- 筆記
作用:用正則表達式的字符分割字符串,正則的字符會被拋棄。
本文以 提取URL的地址與參數 為例,介紹re模塊的split的用法: 返回值 -> 列表
複雜匹配 = re.compile(正則表達式): 將正則表達式實例化
+
re.split(要匹配的字符串): 從字符串開頭 開始匹配,尋找完整個字符串後,將結果以 列表 返回
簡單匹配 = re.split(正則表達式, 要匹配的原字符串): 從字符串開頭 開始匹配,尋找完整個字符串後,將結果以 列表 返回
懶癌,配上模塊函數解釋好消化
re.split(pattern, string, maxsplit=0, flags=0),如果匹配成功,則返回一個列表,否則返回原string列表; 第一個參數:正則表達式 第二個參數:要匹配查找的原始字符串; 第三個參數:可選參數,表示最大的拆分次數,默認為0,表示全部分割; 第四個參數:可選參數,標誌位,用於控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等; 需要特別注意的是,這個方法並不是完全匹配。它僅僅決定在字符串開始的位置是否匹配。所以當pattern結束時若還有剩餘字符,仍然視為成功。想要完全匹配,可以在表達式末尾加上邊界匹配符'$' 例如: re.split(『z』, 『p.python.p』)返回值為['p.python.p']; #失敗返回原string列表 re.split(『p』, 『p.python.p』)返回值為['', '.', 'ython.', ''] #成功返回新列表
方法一:
對象名1 = re.split(正則表達式, 要匹配的原字符串)
#!/usr/bin/python # -*- coding: utf-8 -*- import os,re; pattern = r'[?|&]' string = "https://www.baidu.com/baidu?&ie=utf-8&word=51cto" result = re.split(pattern, string) print('Match:',result)
運行結果:
Match: ['https://www.baidu.com/baidu', '', 'ie=utf-8', 'word=51cto']