.(句點)匹配除了換行之外的所有一個字符, .*(點-星)匹配除了換行外的所有字符
>>> >>> r=re.compile(r'.*') >>> r.search('How are you\nFine thank you and you\nI am fine too').group() 'How are you' >>>
這個例子可以看出.*(點-星)匹配除了換行外的所有字符,但無法匹配換行符,如何匹配包括換行符的所有字符呢?
1、通過傳入re.DOTALL或者re.S作為re.compile()的第二個參數(shù)
>>> >>> r=re.compile(r'.*',re.DOTALL) >>> r.search('How are you\nFine thank you and you\nI am fine too').group() 'How are you\nFine thank you and you\nI am fine too' >>> r=re.compile(r'.*',re.S) >>> r.search('How are you\nFine thank you and you\nI am fine too').group() 'How are you\nFine thank you and you\nI am fine too' >>>
2、通過 (.|\n)* 正則表達(dá)式來匹配所有字符
>>> >>> r=re.compile(r'(.|\n)*') >>> r.search('How are you\nFine thank you and you\nI am fine too').group() 'How are you\nFine thank you and you\nI am fine too' >>>
除了re.DOTALL外,re.IGNORCASE(等價于re.I),re.MULTILINE(re.M),也是很有用的參數(shù)
re.IGNORCASE可以忽略大小寫
>>> >>> r=re.compile(r'hello',re.I) >>> r.findall('Hello hello world heLLo') ['Hello', 'hello', 'heLLo'] >>>
正則表達(dá)式字符介紹:詳細(xì)的可見維基百科介紹
//常用字符的使用介紹
在正則表達(dá)式中 \ 的意思是代表轉(zhuǎn)義字符
在正則表達(dá)式中 . 的意思是代表任意字符
在正則表達(dá)式中 * 的意思是代表任意個字符(包含零個)
在正則表達(dá)式中 + 的意思是代表一個或者多個字符(不包含零個)
在正則表達(dá)式中^ 的意思是代表開始位置(如果用在[之內(nèi)也有相反的意思])
在正則表達(dá)式中 $ 的意思是代表結(jié)束位置
在正則表達(dá)式中 [……]的意思是代表或者的意思比如[a-zA-Z]的意思是a到z或者A-Z之間的隨意一個都可以
在正則表達(dá)式中(.....) 的意思是代表分組
在正則表達(dá)式中 $1 的意思是代表引用分組1的數(shù)據(jù)
在正則表達(dá)式中 {4} 的意思是代表相同的4個;這里代表是量詞的意思,比如說:
(/d/d/d/d是四個數(shù)字但是可以簡寫為/d{4};這里包含前面的字符,一共四次,循環(huán)了三次)
也可以是
(/d{2,4};這里包含前面的字符,共2到4個數(shù)字,循環(huán)了一到三次)
在正則表達(dá)式中 /d 的意思是代表數(shù)字
在正則表達(dá)式中 /D 的意思是代表非數(shù)字
在正則表達(dá)式中 /b 的意思是代表一個單詞的邊界
在正則表達(dá)式中 /B 的意思是代表非單詞的邊界
在正則表達(dá)式中 /g 的意思是代表全局(global)
在正則表達(dá)式中 /i 的意思是代表忽略大小寫,(ignore case)默認(rèn)大小寫敏感
在正則表達(dá)式中 /m 的意思是代表多行,(multiple lines )多行搜索
預(yù)定義類:
在正則中特殊字符大寫表示取反,比如/d代表數(shù)字,則/D代表非數(shù)字與[^0-9]相同
字符 等價類 含義
. [^\r\n] 除了回車符合換行符之外所有的字符
\d [0-9] 數(shù)字字符
\D [0-9] 非數(shù)字字符
\s [\t\n\x0b\f\r] 空白符
\S [^\t\n\x0b\f\r] 非空白符
\w [a-zA-z_0-9] 單詞字符(字母,數(shù)字下劃線)
\W [^a-zA-z_0-9] 非單詞字符
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答??! 點擊進(jìn)入論壇