python编译表达式方法compile

发布时间:2019-08-28 09:06:24编辑:auto阅读(1492)

     

    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

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

     

     

关键字