Python:正則表示式的元字元
阿新 • • 發佈:2018-11-25
#!/usr/bin/env python # coding:UTF-8 """ @version: python3.x @author:曹新健 @contact: [email protected] @software: PyCharm @file: 2.正則表示式的元字元.py @time: 2018/9/15 17:02 """ ''' 單個字元匹配如下: .匹配除換行符以外的任意字元 [0123456789] []是字元集合,表示匹配方括號中所包含的任意一個字元 [a-z] 匹配任意一個小寫字元 [A-Z] 匹配任意一個大寫字元 [0-9] 匹配任意一個數字 [0-9a-zA-Z] 匹配任意一個數字和字母 [0-9a-zA-Z_] 匹配任意一個數字、字母和_ [^cxj] 匹配除了cxj之外的所有字元,中括號裡面的^成為脫字元,表示不匹配集合中的字元 [^0-9] 匹配所有的非數字字元 \d 匹配數字 \D 匹配非數字字元 \w 匹配數字,字母和下劃線 \W 匹配非數字,字母和下劃線 \s 匹配任意的空白符(空格、換行、回車、換頁、製表)同[ \f\n\r\t] \S 匹配任意的非空白符 ''' ''' 錨字元(邊界字元) ^ 行首匹配,和在[]裡的^不是一個意思 $ 行尾匹配 \A 匹配字串開始,它和^的區別是\A只匹配整個字串的開頭,即使在re.M模式下 也不會匹配它的行首 \Z 匹配字串結尾,它和$的區別是\Z只匹配整個字串的結尾,即使在re.M模式下 也不會匹配它的結尾 \b 匹配一個單詞的邊界,也就是單詞和空格的位置 比如r'er\b'能匹配never 不能匹配nerve \B 匹配非單詞的邊界 比如r'er\b'能匹配nerve 不能匹配never ''' ''' 匹配多個字元 (xyz) 匹配小括號內的xyz,作為一個整體去匹配 x? 匹配0個或者1個x #非貪婪匹配 x* 匹配0個或者任意多個x #貪婪匹配 x+ 匹配1個或者任意多個x #貪婪匹配 x{n} 匹配確定的n個x x{n,} 匹配至少n個x #貪婪匹配 x{n,m} 匹配n到m個x.n<=m x|y |表示或,匹配x或y *? +? x? 最小匹配,通常都是儘可能多的匹配,可以使用這種解決貪婪匹配 (?:x) 類似(xyz),但不表示一個組 '''