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

模块级函数会维护已编译表达式的一个缓存。不过,这个缓存的大小是有限的,直接使用已编译表达式可以避免缓存查找开销。使用已编译表达式的另一个好处是,通过在加载模块是预编译所有表达式,可以把编译工作转到应用开始时,而不是当程序响应一个用户动作是才进行编译。

 

 

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