python 中的 re.compile 函數

python 中的 re.compile 函數

 

正則表達式功能十分強大。html

「有些人面臨一個問題時會想:‘我知道,能夠用正則表達式來解決這個問題。’因而如今他們就有兩個問題了」——Jamie Zawinskipython

同時正則表達式很難掌握。正則表達式

正則表達式的各類規則就不在此贅述了,如下介紹在python的re模塊中怎樣應用正則表達式函數

1. 使用re.compile

re模塊中包含一個重要函數是compile(pattern [, flags]) ,該函數根據包含的正則表達式的字符串建立模式對象。能夠實現更有效率的匹配。在直接使用字符串表示的正則表達式進行search,match和findall操做時,python會將字符串轉換爲正則表達式對象。而使用compile完成一次轉換以後,在每次使用模式的時候就不用重複轉換。固然,使用re.compile()函數進行轉換後,re.search(pattern, string)的調用方式就轉換爲 pattern.search(string)的調用方式。post

其中,後一種調用方式中,pattern是用compile建立的模式對象。以下:url

>>> import re
>>> some_text = 'a,b,,,,c d'
>>> reObj = re.compile('[, ]+')
>>> reObj.split(some_text)
['a', 'b', 'c', 'd']

 

2.不使用re.compile

在進行search,match等操做前不適用compile函數,會致使重複使用模式時,須要對模式進行重複的轉換。下降匹配速度。而此種方法的調用方式,更爲直觀。以下:code

>>> import re
>>> some_text = 'a,b,,,,c d'
>>> re.split('[, ]+',some_text)
['a', 'b', 'c', 'd']
相關文章
相關標籤/搜索