首先 python為了書(shū)寫(xiě)上的方便,可以使用raw string,這些禁止字符串轉(zhuǎn)義:
r"\n" 就是兩個(gè)字符而不是一個(gè)字符換行
\d 數(shù)字
\D 非數(shù)字
\s 所有空格字符 [ \t\n\r\f\v]
\S 匹配所有非空格字符 [^ \t\n\r\f\v]
\w 匹配所有文字 [a-zA-Z0-9_]
\W
a{1, 3}b 會(huì)匹配ab aab aaab
{0,} * 是有0個(gè)或多個(gè)的意思 可用星號(hào)簡(jiǎn)寫(xiě)
{1, } + 是一個(gè)或多個(gè)的意思 可用加號(hào)簡(jiǎn)寫(xiě)
{0, 1} ? 是0個(gè)或1個(gè)的意思 可用問(wèn)號(hào)簡(jiǎn)寫(xiě)
使用
編譯
import re
p = re.compile('abc')
compile時(shí)可以傳遞參數(shù) 例如re.IGNORECASE
匹配
如果匹配成功返回的是match object,這個(gè)match object包含四個(gè)方法:
group 匹配到的子字符串
start end span 開(kāi)始、結(jié)束位置 和 兩者組成的tuple
match
僅從開(kāi)頭處開(kāi)始匹配
search
從任意位置開(kāi)始匹配
findall
finditer
直接使用
re.match('pattern', 'searchstring')