一、正則表達式簡介
正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配。 Python 自1.5版本起增加了re 模塊,它提供 Perl 風格的正則表達式模式。
就其本質而言,正則表達式(或 RE)是一種小型的、高度專業化的編程語言, (在Python中)它內嵌在Python中,并通過 re 模塊實現。正則表達式模式被 編譯成一系列的字節碼,然后由用 C 編寫的匹配引擎執行。
re 模塊使 Python 語言擁有全部的正則表達式功能。 compile 函數根據一個模式字符串和可選的標志參數生成一個正則表達式對象。該對象擁有一系列方法用于正則表達式匹配和替換。 re 模塊也提供了與這些方法功能完全一致的函數,這些函數使用一個模式字符串做為它們的第一個參數。
二、字符匹配
1.普通字符:大多數字符和字母都會和自身匹配
>>> re.findall("alexsel","gtuanalesxalexselericapp")['alexsel']>>> re.findall("alexsel","gtuanalesxalexswxericapp")[]>>> re.findall("alexsel","gtuanalesxalexselwupeiqialexsel")['alexsel', 'alexsel']
2.元字符: . ^ $ * + ? { } [ ] | ( ) /
•. :匹配一個除了換行符任意一個字符
>>> re.findall("alexsel.w","aaaalexselaw")['alexselaw']#一個點只能匹配一個字符
•^ :只有后面跟的字符串在開頭,才能匹配上
>>> re.findall("^alexsel","gtuanalesxalexselgeappalexsel")[]>>> re.findall("^alexsel","alexselgtuanalesxalexselwgtappqialexsel")['alexsel']#"^"這個符號控制開頭,所以寫在開頭
•$ :只有它前面的字符串在檢測的字符串的最后,才能匹配上
>>> re.findall("alexsel$","alexselseguanalesxalexselganapp")[]>>> re.findall("alexsel$","alexselgtaanalesxalexsssiqialexsel")['alexsel']
•* :它控制它前面那個字符,他前面那個字符出現0到多個都可以匹配上
>>> re.findall("alexsel*","aaaalexse")['alexse']>>> re.findall("alexsel*","aaaalexsel")['alexsel']>>> re.findall("alex*","aaaalexsellllll")['alexsellllll']
•+ :匹配前面那個字符1到多次
>>> re.findall("alexsel+","aaaalexselll")['aleselll']>>> re.findall("alexsel+","aaaalexsel")['alexsel']>>> re.findall("alexsel+","aaaalexse")[]
•? :匹配前面那個字符0到1個,多余的只匹配一個
>>> re.findall("alexsel?","aaaalexse")['ale']>>> re.findall("alexsel?","aaaalexsel")['alexsel']>>> re.findall("alexsel?","aaaalexsellll")['alexsel']
新聞熱點
疑難解答