Python 的 re 模塊(Regular Expression 正則表達式)提供各種正則表達式的匹配操作。
在文本解析、復雜字符串分析和信息提取時是壹個非常有用的工具 ,下面總結了 re 模塊的常用方法。
d 匹配所有的十進制數字 0-9
D 匹配所有的非數字,包含下劃線
s 匹配所有空白字符(空格、TAB等)
S 匹配所有非空白字符,包含下劃線
w 匹配所有字母、漢字、數字 a-z A-Z 0-9
W 匹配所有非字母、漢字、數字,包含下劃線
備註:符號.* 貪婪,符號.*? 非貪婪
[abc]:能匹配其中的單個字符
[a-z0-9]:能匹配指定範圍的字符,可取反(在最前面加入^)
[2-9] [1-3]:能夠做組合匹配
4.{ }:用於標記前面的字符出現的頻率,有如下情況:
{n,m}:代表前面字符最少出現n次,最多出現m次
{n,}:代表前面字符最少出現n次,最多不受限制
{,m}:代表前面字符最多出現n次,最少不受限制
{n}:前面的字符必須出現n次
字符串中有反斜杠的,需要對反斜杠做轉義
():分組字符,可以為匹配到的內容分組,快速獲取到分組中的數據 在正則裏面 "()" 代表的是分組的意思,壹個括號代表壹個分組,妳只能匹配到 "()" 中的內容。
group:用於查看指定分組匹配到的內容
groups:返回壹個元組,組內為所有匹配到的內容
groupdict:返回壹個字典,包含分組的鍵值對,需要為分組命名
作用:可以將字符串匹配正則表達式的部分割開並返回壹個列表
flags定義包括:
re.I:忽略大小寫
re.L:表示特殊字符集 w, W, b, B, s, S 依賴於當前環境
re.M:多行模式
re.S:’.’並且包括換行符在內的任意字符(註意:’.’不包括換行符)
re.U:表示特殊字符集 w, W, b, B, d, D, s, S 依賴於 Unicode 字符屬性數據庫
在 Python 中使用正則表達式之前,先使用以下命令導入 re 模塊
例如:
‘(d)(a)1’ 表示:匹配第壹是數字,第二是字符a,第三 1 必須匹配第壹個壹樣的數字重復壹次,也就是被引用壹次。
如 “9a9” 被匹配,但 “9a8” 不會被匹配,因為第三位的 1 必須是 9 才可以。
‘(d)(a)2’ 表示:匹配第壹個是壹個數字,第二個是a,第三個 2 必須是第二組()中匹配壹樣的。
如 “8aa” 被匹配,但 “8ab”,“7a7” 不會被匹配,第三位必須是第二組字符的復制版,也是就引用第二組正則的匹配內容。