原生字符串
- raw string:轉(zhuǎn)義字符’\’不解釋為轉(zhuǎn)義字符
re包的幾個主要的函數(shù)
- re.search(pattern, string, flags=0)
- 返回匹配的match對象
- flags:正則表達(dá)式使用時的標(biāo)記
- re.I->IGNORECASE 忽略正則的大小寫、[a-Z]可匹配所有字母
- re.M->MUTILINE 表達(dá)式中的^能夠?qū)⒔o定字符串的每行作為匹配開始
- re.S->DOTALL .可以匹配除換行符以外的字符、若使用re.S則可以匹配換行符
- re.match()
- 返回匹配的match對象
- 默認(rèn)從給定字符串的開頭開始匹配、即使正則表達(dá)式?jīng)]有用^聲明匹配開頭
- re.findall()
- re.split(pattern, string, maxsplit, flags=0)
- re.finditer()
- re.sub(pattern, repl, string, count=0, flags=0)
- 用repl替換所有匹配到的子串、并返回替換后的字符串、count表示最大替換次數(shù)
- 寧波最好的整形醫(yī)院http://www./
寧波好的整形醫(yī)院http://www./
Match對象
- Match對象的幾個屬性:
- .string 待匹配的文本
- .re 匹配使用的pattern對象
- .pos 正則表達(dá)式搜索文本的開始位置
- .endpos 正則表達(dá)式搜索文本的結(jié)束位置
- Match對象的幾個方法:
- group(0) 返回匹配到的子串
- start() 返回匹配子串的開始位置
- end() 返回匹配子串的結(jié)束位置
- span() 返回start()、end()
貪婪匹配與最小匹配
- 貪婪匹配
- 最小匹配
- 只需要對正則的幾個操作符做一些擴(kuò)展就可以使用最小匹配
- *? 前一個0次或無限次匹配、并且最小匹配
- +? 前一個1次或無限次、并且最小匹配
- ?? 前一個字符0次或1次匹配、并且最小匹配
- {m,n}? 擴(kuò)展前一個字符m至n次、最小匹配
|