模式描述+
匹配1個或多個表示式
*匹配0個或多個表示式
^匹配一行字串開頭
$匹配一行字串結尾
.匹配任意字元
\d匹配任意數字
\s匹配任意空白符號
\w匹配字母、數字及下劃線
精確匹配n個前面的表示式
方法描述
match()
從字串開頭開始,傳入要匹配的正規表示式,檢測是否有匹配字串
search()
依次掃瞄字串,找到第乙個符合的字串
findall()
搜尋整個字串,返回匹配的使用內容
sub()
去除或修改一些字串,讓匹配更簡單
compile()
將正則字串編譯成表示式物件,方便復用
match() 方法
content = 'hello 123 4567 world_this is a regex demo'
# 第乙個引數為正規表示式,第二個為要匹配的字串
result = re.match('^hello\s(\d+)\s\d\s\w', content)
輸出匹配的內容 ——group()輸出匹配的範圍——span()
print(result)
print(result.group())
print(result.group(1)) # 子字串匹配
print(result.span())
結果:
通用匹配hello 123 4567 world_this
123(0, 25)
.* 表示匹配任意字元並無限次匹配
result1 = re.match('^hello.*demo$', content)
print(result1.group())
結果:
hello 123 4567 world_this is a regex demo貪婪匹配
非貪婪匹配
.*.*?
盡可能匹配多的字元
盡可能匹配少的字元
字串末尾
字串中
修飾符
修飾符描述
re.i
匹配不區分大小寫
re.s
使.匹配包括換行符在內的所有字元
使用
result = re.match(』^hello\s(\d+)\s\d\s\w』, content, re.s)轉義匹配
在前面加\, 如\.sub() 方法
import re
content = '5423dfjdjf:lj'
# 第乙個引數傳入匹配值,第二個為替換成的字串,第三個為原字串
result = re.sub('\d+', '', content)
print(result)
結果:
dfjdjf:ljcompile() 方法
import re
content1 = '2016-12-15 12:00'
content2 = '2019-4-23 12:00'
pattern = re.compile('\d:\d')
result1 = re.sub(pattern, '', content1)
result2 = re.sub(pattern, '', content2)
print(result1, result2)
結果:
2016-12-15 2019-4-23
正規表示式 常用正規表示式
一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的...
正規表示式 常用正規表示式
網域名稱 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 4 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 或者 1 3...
正規表示式常用
正規表示式的介紹 1 資料型別 基本資料型別 number string boolean null undefined 複雜資料型別 array function object math date regexp正規表示式 string number boolean 2 regular express...