Python 正則表示式:split
阿新 • • 發佈:2018-11-15
作用:用正則表示式的字元分割字串,正則的字元會被拋棄。
本文以 提取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']