1. 程式人生 > >Python 正則表示式:split

Python 正則表示式:split

作用:用正則表示式的字元分割字串,正則的字元會被拋棄。

本文以 提取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']