zoukankan      html  css  js  c++  java
  • 模块级函数

    你不一定要产生一个 RegexObject 对象然后再调用它的方法;re 模块也提供了顶级函数调用如 match()、search()、sub() 等等。这些函数使用 RE 字符串作为第一个参数,而后面的参数则与相应 RegexObject 的方法参数相同,返回则要么是 None 要么就是一个 MatchObject 的实例。

    #!python
    >>> print re.match(r'Froms+', 'Fromage amk')
    None
    >>> re.match(r'Froms+', 'From amk Thu May 14 19:12:10 1998')
    <re.MatchObject instance at 80c5978>
    

    Under the hood, 这些函数简单地产生一个 RegexOject 并在其上调用相应的方法。它们也在缓存里保存编译后的对象,因此在将来调用用到相同 RE 时就会更快。

    你将使用这些模块级函数,还是先得到一个 RegexObject 再调用它的方法呢?如何选择依赖于怎样用 RE 更有效率以及你个人编码风格。如果一个 RE 在代码中只做用一次的话,那么模块级函数也许更方便。如果程序包含很多的正则表达式,或在多处复用同一个的话,那么将全部定义放在一起,在一段代码中提前编译所有的 REs 更有用。从标准库中看一个例子,这是从 xmllib.py 文件中提取出来的:

    #!python
    ref = re.compile( ... )
    entityref = re.compile( ... )
    charref = re.compile( ... )
    starttagopen = re.compile( ... )
  • 相关阅读:
    hdu 5976 Detachment
    poj 2096 Collecting Bugs
    hdu 4544 湫湫系列故事——消灭兔子
    Educational Codeforces Round 8 B. New Skateboard
    python 迭代器与生成器 区别
    【机器学习】EM算法详细推导和讲解
    【机器学习】极大似然估计详解
    标准sql工单模板
    【机器学习】LDA 浅谈
    Jupyter notebook入门教程
  • 原文地址:https://www.cnblogs.com/kuihua/p/5970997.html
Copyright © 2011-2022 走看看