正則
-
篩選
-
判斷
-
match – 匹配開頭
-
search – 匹配第一個
-
findall – 匹配全部
. 用於匹配除換行符(\n) 之外的所有字符。
^ 用於匹配字符串的開始,即行首。
$ 用於匹配字符串的末尾(末尾如果有換行符\n,就匹配\n前面的那個字符),即行尾。
* 用於將前面的模式匹配0次或多次(貪婪模式,即儘可能多的匹配)
+ 用於將前面的模式匹配1次或多次(貪婪模式)
? 用於將前面的模式匹配0次或1次(貪婪模式)
*? +? ?? 即上面三種特殊字符的非貪婪模式(儘可能少的匹配)。
{m,n} 用於將前面的模式匹配m次到n次( 貪婪模式),即最小匹配m次,最大匹配n次。
{m,n}? 即上面‘{m,n}’的非貪婪版本。
\ 是轉義字符,在特殊字符前面加上\,特殊字符就失去了其所代表的含義,比如\+就僅僅代表加號+本身。
[] 用於標示一組字符,如果是第一個字符,則標示的是一個補集。比如[0-9]表示所有的數字,[ 0-9]表示除了數字外的字符
| 比如A I B用於匹配A或B。
(...) 用於匹配括號中的模式,可以在字符串中檢索或匹配我們所需要的內容。
- 範圍類
[] 匹配範圍
. 所有字符(除\n外)
^ 行首
$ 行尾
^..str..$ 從頭匹配到尾
[0-9] 純數字
[a-zA-Z] 純字母
[0-9a-zA-Z] 數字和字母
[#$%^&*] #或$或%或^或&或*
- 次數類
* 0次以上
+ 1次以上
{m,} m次以上
{n} n次
{m,n} m-n次
? 0次 或 1次
- 轉義類
\A 從開始匹配
\Z 從結束匹配
\b 匹配單詞邊界 即單詞間的空格
\B 非單詞邊界
\d [0-9]
\D [^\d]非數字
\s [\t\n\r\f] 匹配任意空白字符
\S [^\s]匹配任意非空白字符
\w [a-zA-Z0-9_] 匹配任意 數字 字母 下劃線
\W [^\w]
\\ 匹配\
引用第一組匹配的內容
分組匹配
import re
html = '<html><h1>你哈</h1></html>'
res_h = re.match(r'<(\w+)><(\w+)>(.+)(</\2>)(</\1>)', html)
# 分組 + 起名
res_n = re.match(r'<(?P<name1>\w+)><(?P<name2>\w+)>(.+)(</(?P=name2)>)(</(?P=name1)>)', html)
print(res_n)
# (?P<name>) 起名
# (?P=name) 引用
- 其他
re.sub('\d','rep',str)
re.sub('\d',func, str)
re.split()