1、math()
2.1、提取匹配後的字串
2.2、通用匹配
2.3、貪婪和非貪婪
2.4、修飾符
2.5、轉義字元
3、searh()
3.1提取html
4.findall()
5.sub()
6.complie()
正規表示式驗證**:
常用的匹配規則
單個字元
.匹配除換行之外的任意的乙個字元
a|b
字元a或字元b
[afg]
a或者f或者g的乙個字元
[0-4]
0-4範圍內的乙個字元
[^m]
不是m的乙個字元,注意區別^m
\s 乙個空格
\s
乙個非空格
\d
[0-9]
\d[^0-9]
\w字母、數字、下劃線
\w非字、數字、下劃線
重複*
重複 >=0 次
+
重複 >=1 次
?重複 0或者1 次
重複m次
重複m到n次位置^
字串的起始位置,表示匹配必須放生在被查詢文字開始處
$字串的結尾位置,表示該字串必須以這個正規表示式的模式結束
python的re庫提供了正規表示式的實現
傳入要匹配的字串以及正規表示式就能檢測,match從開頭開始匹配,如果開頭匹配不到則匹配失敗
import re
content ="hellow 123 4567 world_this is a regex demo"
#以hellow開頭、後面接著乙個空格,之後為是三個數字、再接一格空格、後面為3個數字、之後為10個數字、字母、下劃線結尾
resault = re.match('^hellow\s\d\s\d\s\w',content)
print(len(content))
print(resault)
print(resault.span())#輸出匹配的範圍
print(resault.group())#輸出匹配到的內容
#列印結果
##42
##<_sre.sre_match object; span=(0, 26), match='hellow 123 4567 world_this'>
##(0, 26)
##hellow 123 4567 world_this
使用()可以將匹配到的內容進行分段,使用group提取出來
import re
content ="hellow is_a_hellow_is_1231224"
resault = re.match('^hellow\s(\w+)(\w)',content)
print(len(content))
print(resault)
print(resault.span())
print(resault.group())
print(resault.group(1))
#29#<_sre.sre_match object; span=(0, 22), match='hellow is_a_hellow_is_'>
#(0, 22)
#hellow is_a_hellow_is_
#is_a_hello
.*
.用來匹配除換行符的任意字串,*用來匹配出現任意次數
.*貪婪模式/ .*?非貪婪
貪婪模式下回匹配盡可能多的字元,而非貪婪則匹配盡可能少的字元
修飾符
修飾符描述
re.i
對大小寫不敏感
re.l
z做本地化識別匹配
re.m
多行匹配,影響 ^和$
re.s
匹配所有字串
re.u
g更具unicode字符集匹配字元
re.x
t提供更加靈活的格式
import re
content ='hellow 1237 hellow'
resault = re.match('.*(/d+).*',content.re.s)#re.s使得.*匹配所有字元
print(len(content))
print(resault)
print(resault.span())
print(resault.group())
print(resault.group(1))
當遇到特殊字元時,在前面加\轉義,即可匹配
search也用也匹配字串,只不過不是從開頭開始匹配,它會掃瞄整個字串,然後返回乙個成功ipei的結果
import re'''
resault = re.search('(.*)',content,re.s)#re.s使得.*匹配所有字元
print(len(content))
print(resault)
print(resault.group())
print(resault.group(1))
#1303
#<_sre.sre_match object; span=(426, 454), match='csdn-專業it技術社群'>
#csdn-專業it技術社群
#csdn-專業it技術社群
search返回的是第乙個匹配的內容,而findall可以獲取到所有匹配的內容
可以使用sub修改文字
import re
content="asda76asd888asd99"
result = re.sub('\d+','',content) #第乙個引數是要刪除的內容,第二個刪除是要替換的內容
print(result)
#結果#asdaasdasd
將正規表示式編譯成正規表示式 正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...