正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。
- 匹配單個字符
a-z 0-9 ?!@等等 匹配對應的指定字符串
. 匹配任意一個字符(除了\n)
[] 匹配[]中列舉的字符
\d 匹配數字,0-9
\D 匹配非數字,即不是數字
\s 匹配空白,即空格,tab鍵
\S 匹配非空白
\w 匹配單詞字符,即a-z、A-Z、0-9、_
\W 匹配非單詞字符
- 匹配多個字符
是指配合單個語法完成匹配多個字符串
* 匹配前一個字符出現0次或者無限次
+ 匹配前一個字符出現1次或者無限次
? 匹配前一個字符出現1次或0次
{m} 匹配前一個字符出現m次
{m,n}匹配前一個字符出現從m到n次都可
- 匹配字符串開頭結尾
^ 匹配字符串開頭
$ 匹配字符串結尾
- 轉義字符
如果正則表達式中需要用到某些普通的字符如.?+,則需要在他們前面加一個反斜槓\進行轉義
\? 顯示?
\. 顯示.
\* 顯示*
等等
- 匹配分組
| 匹配左右任意一個表達式
(ab) 將括號中字符串作爲一個分組
\num 引用分組num匹配到的字符串
(?P<name>匹配規則) 分組起別名
(?P=name) 引用別名爲name分組匹配到的字符串
可以返回指定分組的內容:re.group(1) #從1開始非0
- 修飾符
re.I 使匹配對大小寫不敏感
re.L 做本地化識別(locale-aware)匹配
re.M 多行匹配,影響 ^ 和 $
re.S 使 . 匹配包括換行在內的所有字符
re.U 根據Unicode字符集解析字符。這個標誌影響 \w, \W, \b, \B.
re.X 該標誌通過給予你更靈活的格式以便你將正則表達式寫得更易於理解。
在python中需要通過正則表達式對字符串進行匹配時,要使用re模塊
import re
result = re.match(匹配規則,匹配字符串,修飾符) #match從頭開始匹配直到結束或失敗,修飾符選項非必須
result =re.search(匹配規則,匹配字符串)#search 會掃描整個字符串,並返回第一個成功的匹配
print(result.group())
-----------------------------------------------------------------------------------------
result=re.findall(匹配規則,匹配字符串)#掃描整個字符串,但會所有匹配成功的字符並放置進一個列表
print(relust)
-----------------------------------------------------------------------------------------
re.sub(匹配規則,替換字符串,匹配字符串)#掃描整個字符串,匹配的字符串替換成對應的字符