本文將通過通俗易懂的Python正則表達式實戰編程來為讀者演示如何使用正則表達式以及正則表達式處理的過程和結果,以供大家參考和學習。
Python正則表達式編程必備—re.compile()
Python是一種解釋性語言,代碼的運行必須通過解釋器來執行,所以對於Python解釋器大家必須要清楚一點:
解釋器在執行字符串形式的代碼前都必須把字符串編譯成代碼對象,原因就是預編譯的代碼對象比直接使用字符串代碼要快得多(感興趣的讀者可以去研究下Python代碼執行過程)。
以上述知識為前提,re.compile()便是該過程的具體實現。正則表達式在模式匹配前必須被編譯成正則表達式對象,雖然使用者多不會做這步操作但大家必須要知道這一點而且強烈建議大家在正則表達式編程中使用預編譯——re.compile(),一則利於嚴謹的編程風格,二則利於提升執行性能。
後文中的編程實踐中之所以沒有使用re.compile()是由於re模塊函數會緩存已編譯的對象,故並非所有使用正則表達式模式的search和match函數都需要編譯,這裡提前說明下。
Python正則表達式編程實戰
match()—從字符串起始部分進行模式匹配,成功則返回對象,失敗則返回None
search()—在字符串任意位置匹配,搜索成功則返回對象,失敗則返回Nonesearch()的工作方式與match()完全相同,只不過二者的作用不同,前者是從字符串起始開始匹配,後者是在字符串任意位置使用給定正則表達式模式搜索第一次出現的匹配結果。
匹配多個字符串——或 ( | )
總結
re模塊中的match()函數和search()函數是正則表達式編程的基本要求,也是必備技能,除了本文中的使用方式外,感興趣的讀者可以自行研究。
下一篇文章將介紹由符號構成的正則表達式編程,希望對大家學習有所幫助。