Python中轉義字符
正則表達式使用反斜杠” / “來代表特殊形式或用作轉義字符,這里跟Python的語法沖突,因此,Python用” //// “表示正則表達式中的” / “,因為正則表達式中如果要匹配” / “,需要用/來轉義,變成” // “,而Python語法中又需要對字符串中每一個/進行轉義,所以就變成了” //// “。
上面的寫法是不是覺得很麻煩,為了使正則表達式具有更好的可讀性,Python特別設計了原始字符串(raw string),需要提醒你的是,在寫文件路徑的時候就不要使用raw string了,這里存在陷阱。raw string就是用'r'作為字符串的前綴,如 r”/n”:表示兩個字符”/”和”n”,而不是換行符了。Python中寫正則表達式時推薦使用這種形式。
正則表達式元字符說明
. 匹配除換行符以外的任意字符^ 匹配字符串的開始$ 匹配字符串的結束[] 用來匹配一個指定的字符類別? 對于前一個字符字符重復0次到1次* 對于前一個字符重復0次到無窮次{} 對于前一個字符重復m次{m,n} 對前一個字符重復為m到n次/d 匹配數字,相當于[0-9]/D 匹配任何非數字字符,相當于[^0-9]/s 匹配任意的空白符,相當于[ fv]/S 匹配任何非空白字符,相當于[^ fv]/w 匹配任何字母數字字符,相當于[a-zA-Z0-9_]/W 匹配任何非字母數字字符,相當于[^a-zA-Z0-9_]/b 匹配單詞的開始或結束
模塊函數說明即舉例
re.compile 將正則表達式編譯成pattern對象
compile(pattern, flags=0)
第一個參數:規則
第二個參數:標志位
re.match 只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數返回None
match(pattern, string, flags=0)
第一個參數:規則
第二個參數:表示要匹配的字符串
第三個參數:標致位,用于控制正則表達式的匹配方式
re.search 匹配整個字符串,直到找到一個匹配
search(pattern, string, flags=0)
第一個參數:規則
第二個參數:表示要匹配的字符串
第三個參數:標致位,用于控制正則表達式的匹配方式
>>> import re>>> pattern = re.compile(r'linuxeye')>>> match = pattern.match('jb51.net')>>> print match<_sre.SRE_Match object at 0x7f4e96e61c60>>>> print match.group()linuxeye>>> m = pattern.match('blog.jb51.net') #match匹配開頭,沒找到>>> print mNone>>> m = pattern.search('blog.jb51.net') #search匹配整個字符串,直到找到一個匹配>>> print m<_sre.SRE_Match object at 0x7f15abfc6b28>>>> print m.group()linuxeye
>>> m = re.match(r'linuxeye','jb51.net') #不用re.compile>>> print m<_sre.SRE_Match object at 0x7f4e96e61b90>>>> print m.group()linuxeye>>> m = re.match(r'linuxeye','www.jb51.net')>>> print mNone
新聞熱點
疑難解答