模块级函数

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

#!python
>>> print re.match(r‘From\s+‘, ‘Fromage amk‘)
None
>>> re.match(r‘From\s+‘, ‘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( ... )
时间: 2024-09-30 03:31:26

模块级函数的相关文章

pytest_用例运行级别_模块级

''' pytest 参数说明 https://www.jianshu.com/p/7a7432340f02 -x test_fixt_model.py 遇到错误时,停止运行 用-v运行(-v显示运行的函数)py.test –v test_fixt_model.py, 用例设计原则 文件名以 test_*.py 文件和*_test.py 以 test_开头的函数 以 Test 开头的类 以 test_开头的方法 所有的包 pakege 必项要有__init__.py 文件 用例运行级别 ? 模块

erlang判断模块导出函数问题

erlang本身提供一个接口,可以用来检查模块是否有导出函数,这个接口是erlang:function_exported/3,但是很多时候这个接口无法正常使用. 下面重现一下这个问题: 1> erlang:function_exported(crypto,start,0). false 2> crypto:start(). ok 3> erlang:function_exported(crypto,start,0). true 注意:例子中并不是说一定要crypto:start()才能使

VB6/VBA中跟踪鼠标移出窗体控件事件(类模块成员函数指针CHooker类应用)

前几天发了一篇博文,是关于获取VB类模块成员函数指针的内容(http://www.cnblogs.com/alexywt/p/5880993.html):今天我就发一下我的应用实例. VB中默认是没有鼠标移出事件响应的,而这个事件其实在项目开发中,实用性很强,很多时候需要在鼠标移出窗体或控件时做些事情:没有这个事件会感觉很费力: 今天我所说的实际案例就是,在窗体上,设计一个SplitterBar控件,窗体的最终用户使用这个控件可以在运行程序时任意调整其内部控件大小. 我在第二篇参考博文作者开发的

获取VB类模块成员函数指针(转)

最近在做一些VB6.VBA的项目,被如何获取类模块中的函数指针这个问题所困扰,收集整理后,有2分资料值得收藏,特将关键部分留存,以备后续查找. 参照连接1:http://www.cnblogs.com/pctgl/articles/1352916.html 参照连接2:http://blog.csdn.net/lyserver/article/details/4224676 以下是链接1中的部分内容: 1. 函数地址 = GetClassProcAddress ( 指定为哪个函数 [上面解释],

python re 模块 findall 函数用法简述

python re 模块 findall 函数用法简述 代码示例: 1 >>> import re 2 >>> s = "adfad asdfasdf asdfas asdfawef asd adsfas " 3 4 >>> reObj1 = re.compile('((\w+)\s+\w+)') 5 >>> reObj1.findall(s) 6 [('adfad asdfasdf', 'adfad'), ('a

random模块常用函数

random模块常用函数: from random import * # Random float: 0.0 <= x < 1.0 random() # Random float: 2.5 <= x < 10.0 uniform(2.5, 10.0) # Integer: 0 <= x <= 9 randrange(10) # Even integer from 0 to 100 inclusive randrange(0, 101, 2) # Single rando

模块2-1 函数基础

模块2-1 函数基础 原文地址:https://www.cnblogs.com/wiaowupy/p/12254460.html

lua 中的上n级模块路径函数分享

在lua开发中使用模块并非难事也非易事,其中关于lua文件定位就不太直接方便. 比如有如下文件结构: 假设 me 是正在开发的模块.而由于 lua 中的 require 函数使用的相对于 lua 解释器的路径,同时 lua 也没有 ../ 这样的上一级文件的写法,所以如果 ti/me/pk/folder.lua 想要调用 ti/me/na 模块的话就必须写成出完整的路径出来.即floder.lua 中的调用语句就是 require (“ti.me.na”) . 但是如果me模块不是在 ti 文件

Python OS模块常用函数说明

Python的标准库中的os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行. 下面列出了一些在os模块中比较有用的部分.它们中的大多数都简单明了. os.sep可以取代操作系统特定的路径分隔符.windows下为 "\\" os.name字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'pos