re 模塊
re 模塊:
Python的 re 模塊實現了正則表達式處理的功能。
導入re模塊后,使用findall、search函數可以進行匹配

查找:match和search
多個匹配上的,也只會返回第一個匹配上的
re.match():
需要特別注意的是,這個方法并不是完全匹配。它僅僅決定在字符串開始的位置是否匹配。所以當pattern結束時若還有剩余字符,仍然視為成功。想要完全匹配,可以在表達式末尾加上邊界匹配符’$’

查找:finditer 和 findall 和 fullmatch
re.finditer()
下標從0開始

re.findall()
o\s+:匹配o和后面的一個或多個空白字符

re.fullmatch()
h.*d:h和d之間0或多個除\n之外的任意字符

分組: group()和groupdict()
group()

re.groupdict()
在匹配時使用“?P<>”,獲得匹配結果后調用.groupdict()方法,獲得字典類型的結果

替換:re.sub()

把字符串里的數字變成兩倍:

生成一個正則表達式對象: re.compile()

正則表達式規則
# 1. 數字和字母都表示它本身
print(re.search(r'x', 'hello xyz')) # <re.Match object; span=(6, 7), match='x'>
print(re.search(r'5', '1a3b56c8d')) # <re.Match object; span=(4, 5), match='5'># 2. 很多字母前面添加 \ 會有特殊含義。
print(re.search(r'd', 'good')) # <re.Match object; span=(3, 4), match='d'>
print(re.search(r'\d', 'good')) # None
print(re.search(r'\d', 'go1234od')) # <re.Match object; span=(4, 5), match='1'># 3.大多數標點符號 都有特殊含義。如果想要使用標點符號,需要加 \ 。
print(re.search(r'+', '1+2=3')) # re.error:
print(re.search(r'\+', '1+2=3')) # <re.Match object; span=(1, 2), match='+'>
案例: 判斷是否是數字
原始:

正則表達式:

案例:提取字符串中內容

案例:QQ判斷
QQ號碼

QQ用戶名1

QQ用戶名2
\w:匹配字母數字下劃線

案例總結
