一直以為正規表示式用的不錯了 今晚仔細學習發現很多還不到位,之前忽略的一些用法
1.(...)
匹配括號中的任意正規表示式
2.(?#...)
注釋,忽略括號內的內容
3.(?=...)
表示式'...'之前的字串,
在字串』 liutest 』中 (?=test) 會匹配'liu'
4.(?!...)
後面不跟表示式'...'的字串,
如果』liu』後面不是字串』 test 』,那麼 (?!test) 會匹配'liu'
5.(?<=...)
跟在表示式』…』後面的字串符合括號之後的正規表示式
正規表示式』 (?<=abc)def 』會在』 abcdef 』中匹配』 def 』
6.(?
括號之後的正規表示式不跟在』…』的後面
7.'(?:)'
無組捕獲
當你要將一部分規則作為乙個整體對它進行某些操作,比如指定其重複次數時,你需要將這部分規則用 』(?:』 『)』 把它包圍起來,而不能僅僅只用一對括號,那樣將得到絕對出人意料的結果。
例:匹配字串中重複的 』ab』
>>> s=』ababab abbabb aabaab』
>>> re.findall( r』/b(?:ab)+/b』 , s )
['ababab']
8.(?ilmsux)
編譯選項指定
python的正則式可以指定一些選項,這個選項可以寫在findall或compile的引數中,也可以寫在正則式裡,成為正則式的一部分。這在某些情況下會便利一些。具體的選項含義請看後面的compile函式的說明。
此處編譯選項』i』 等價於ignorecase ,l 等價於 local ,m 等價於 multiline ,s 等價於dotall ,u 等價於 unicode , x 等價於 verbose 。
請注意它們的大小寫。在使用時可以只指定一部分,比如只指定忽略大小寫,可寫為 『(?i)』,要同時忽略大小寫並使用多行模式,可以寫為 『(?im)』。
參考:
部分正規表示式
d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d d 0 0 非正浮點數 負浮點數 ...
正規表示式部分
正規表示式是用來匹配字串的強有力 在正規表示式中,如果直接給出字元,就是精確匹配。用 d可以匹配乙個數字,w可以匹配乙個字母或者數字。要匹配變長的字元,用?表示0個或1個字元,用表示n個字元,用表示n m個字元,等等。要更精確的匹配,可以用表示範圍,比如 a b 可以匹配a或b,表示行的開頭,d 表...
正規表示式部分整理
一 校驗數字的表示式 數字 0 9 n位的數字 d 至少n位的數字 d m n位的數字 d 零和非零開頭的數字 0 1 9 0 9 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 帶1 2位小數的正數或負數 d d 正數 負數 和小數 d d 有兩位小數的正實數 0 9 0 9 有1 3位小...