常用模塊 2018-4-9
阿新 • • 發佈:2018-04-09
分組 符號 模式 sdfas search 表達式 其他 asdf 所有
re模塊
re模塊:
什麽是正則:正則就是用一些具有特殊含義的符號組合到一起(稱為正則表達式)來描述字符或者字符串的方法。或者說:正則就是用來描述一類事物的規則。
(在Python中)它內嵌在Python中,並通過 re 模塊實現。正則表達式模式被編譯成一系列的字節碼,然後由用 C 編寫的匹配引擎執行
re模塊的通常用法:
重復匹配:
. ? * + {m,n} .* .*?
1、.:代表除了換行符外的任意一個字符
print(re.findall(‘a.c‘,‘abc a1c aAc aaaaaca\nc‘,re.DOTALL))
2、?:代表左邊那一個字符重復0次或1次
print(re.findall(‘ab?‘,‘a ab abb abbb abbbb abbbb‘))
3、*:代表左邊那一個字符出現0次或無窮次
print(re.findall(‘ab*‘,‘a ab abb abbb abbbb abbbb a1bbbbbbb‘))
4、+ :代表左邊那一個字符出現1次或無窮次
print(re.findall(‘ab+‘,‘a ab abb abbb abbbb abbbb a1bbbbbbb‘))
5、{m,n}:代表左邊那一個字符出現m次到n次
print(re.findall(‘ab?‘,‘a ab abb abbb abbbb abbbb‘))
6、.*:匹配任意長度,任意的字符=====》貪婪匹配
print(re.findall(‘a.*c‘,‘ac a123c aaaac a *123)()c asdfasfdsadf‘))
7、.*?:非貪婪匹配
print(re.findall(‘a.*?c‘,‘a123c456c‘))
():分組
[]:匹配一個指定範圍內的字符(這一個字符來自於括號內定義的)
[]內的^代表取反的意思
| :或者
(?:):代表取匹配成功的所有內容,而不僅僅只是括號內的內容
re 模塊的其他用法
re.search 掃描整個字符串並返回第一個成功的匹配。
re.match只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數返回None;而re.search匹配整個字符串,直到找到一個匹配。
常用模塊 2018-4-9