python編譯表達式方法compile()

 

re包含一些模塊級函數,用於處理作爲文本字符串的正則表達式,不過對於程序頻繁使用的表達式,編譯這些表達式會更爲高效。compile()函數會把一個表達式字符串轉換爲一個RegexObject。

 

  1. import re  
  2.  
  3. regexes = [ re.compile(p) 
  4.            for p in ['this''that'
  5.            ] 
  6. text = 'Does this text match the pattern?' 
  7.  
  8. print 'Text: %r\n' % text 
  9.  
  10. for regex in regexes: 
  11.     print 'Seeking "%s" ->' % regex.pattern, 
  12.      
  13.     if regex.search(text): 
  14.         print 'match!' 
  15.     else
  16.         print 'no match' 

輸出:

Text: 'Does this text match the pattern?'


Seeking "this" -> match!

Seeking "that" -> no match

模塊級函數會維護已編譯表達式的一個緩存。不過,這個緩存的大小是有限的,直接使用已編譯表達式可以避免緩存查找開銷。使用已編譯表達式的另一個好處是,通過在加載模塊是預編譯所有表達式,可以把編譯工作轉到應用開始時,而不是當程序響應一個用戶動作是才進行編譯。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章