正則表達(dá)式

1、匹配單個(gè)字符與數(shù)

.? ? ? ? ? ? ? ? 匹配除換行符以外的任意字符

[0123456789]? ? []是字符集合,表示匹配方括號(hào)中所包含的任意一個(gè)字符

[sunck]? ? ? ? ? 匹配's','u','n','c','k'中任意一個(gè)字符

[a-z]? ? ? ? ? ? 匹配任意小寫(xiě)字母

[A-Z]? ? ? ? ? ? 匹配任意大寫(xiě)字母

[0-9]? ? ? ? ? ? 匹配任意數(shù)字,類(lèi)似[0123456789]

[0-9a-zA-Z]? ? ? 匹配任意的數(shù)字和字母

[0-9a-zA-Z_]? ? 匹配任意的數(shù)字、字母和下劃線(xiàn)

[^sunck]? ? ? ? 匹配除了sunck這幾個(gè)字母以外的所有字符,中括號(hào)里的^稱(chēng)為脫字符,表示不匹配集合中的字符

[^0-9]? ? ? ? ? 匹配所有的非數(shù)字字符

\d? ? ? ? ? ? ? 匹配數(shù)字,效果同[0-9]

\D? ? ? ? ? ? ? 匹配非數(shù)字字符,效果同[^0-9]

\w? ? ? ? ? ? ? 匹配數(shù)字,字母和下劃線(xiàn),效果同[0-9a-zA-Z_]

\W? ? ? ? ? ? ? 匹配非數(shù)字,字母和下劃線(xiàn),效果同[^0-9a-zA-Z_]

\s? ? ? ? ? ? ? 匹配任意的空白符(空格,換行,回車(chē),換頁(yè),制表),效果同[ \f\n\r\t]

\S? ? ? ? ? ? ? 匹配任意的非空白符,效果同[^ \f\n\r\t]



2、錨字符(邊界字符)


^? ? 行首匹配,和在[]里的^不是一個(gè)意思

$? ? 行尾匹配

\A? ? 匹配字符串開(kāi)始,它和^的區(qū)別是,\A只匹配整個(gè)字符串的開(kāi)頭,即使在re.M模式下也不會(huì)匹配它行的行首

\Z? ? 匹配字符串結(jié)束,它和$的區(qū)別是,\Z只匹配整個(gè)字符串的結(jié)束,即使在re.M模式下也不會(huì)匹配它行的行尾

\b? ? 匹配一個(gè)單詞的邊界,也就是值單詞和空格間的位置

'er\b'可以匹配never,不能匹配nerve

\B? ? 匹配非單詞邊界


3、匹配多個(gè)字符

說(shuō)明:下方的x、y、z均為假設(shè)的普通字符,n、m(非負(fù)整數(shù)),不是正則表達(dá)式的元字符

(xyz)? ? 匹配小括號(hào)內(nèi)的xyz(作為一個(gè)整體去匹配)

x?? ? ? 匹配0個(gè)或者1個(gè)x

x*? ? ? 匹配0個(gè)或者任意多個(gè)x(.* 表示匹配0個(gè)或者任意多個(gè)字符(換行符除外))

x+? ? ? 匹配至少一個(gè)x

x{n}? ? 匹配確定的n個(gè)x(n是一個(gè)非負(fù)整數(shù))

x{n,}? ? 匹配至少n個(gè)x

x{n,m}? 匹配至少n個(gè)最多m個(gè)x。注意:n <= m

x|y? ? ? |表示或,匹配的是x或y


4、特殊

*?? +?? x?? 最小匹配,通常都是盡可能多的匹配,可以使用這種解決貪婪匹配

(?:x)? ? ? ? 類(lèi)似(xyz),但不表示一個(gè)組


#注釋?zhuān)? /*? part1? */? /*? part2? */

print(re.findall(r"http://*.*?/*/", r"/*? part1? */? /*? part2? */"))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容