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']