python的re模块理解(re.compile、re.match、re.search)

import rehelp(re.compile)‘‘‘输出结果为:Help on function compile in module re:

compile(pattern, flags=0)    Compile a regular expression pattern, returning a pattern object.通过help可知:编译一个正则表达式模式,返回一个模式对象。‘‘‘

‘‘‘第二个参数flags是匹配模式,可以使用按位或’|’表示同时生效,也可以在正则表达式字符串中指定。Pattern对象是不能直接实例化的,只能通过compile方法得到。匹配模式有: 1).re.I(re.IGNORECASE): 忽略大小写2).re.M(MULTILINE): 多行模式,改变’^’和’$’的行为3).re.S(DOTALL): 点任意匹配模式,改变’.’的行为4).re.L(LOCALE): 使预定字符类 \w \W \b \B \s \S 取决于当前区域设定5).re.U(UNICODE): 使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性6).re.X(VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释 ‘‘‘

text="JGod is a handsome boy ,but he is a ider"print re.findall(r‘\w*o\w*‘,text)  #查找有o的单词#输出结果为:[‘JGod‘, ‘handsome‘, ‘boy‘]

#利用compile生成一个规则模式吧,然后利用findall将某一个对象内容进行匹配。,合适则输出符合规则的内容regex=re.compile(r‘\w*o\w*‘)print regex.findall(text)#>>> [‘JGod‘, ‘handsome‘, ‘boy‘]

test1="who you are,what you do,When you get get there? What is time you state there?"regex1=re.compile(r‘\w*wh\w*‘,re.IGNORECASE)wh=regex1.findall(test1)print wh#>>> [‘who‘, ‘what‘, ‘When‘, ‘What‘]
‘‘‘re正则表达式模块还包括一些有用的操作正则表达式的函数。下面主要介绍match函数以及search函数。定义: re.match 尝试从字符串的开始匹配一个模式。原型:re.match(pattern, string, flags)第一个参数是正则表达式,如果匹配成功,则返回一个Match,否则返回一个None;第二个参数表示要匹配的字符串;第三个参数是标致位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

函数的返回值为真或者假。例如:match(‘p’,’python’)返回值为真;match(‘p’,’www.python.org’)返回值为假。

定义:re.search会在给定字符串中寻找第一个匹配给定正则表达式的子字符串。

函数的返回值:如果查找到则返回查找到的值,否则返回为None。

原型:re.search(pattern, string, flags)

每个参数的含意与re.match一样。‘‘‘#re.match的例子1import reyour_love=re.match("wh","What are you doing? who is you mate?",re.I)if your_love:    print "you are my angle"else:    print "i lose you "#相当于:print "*"*100  #便于区分import recontent="What are you doing? who is your mate?"regu_cont=re.compile("\w*wh\w*",re.I)yl=regu_cont.match(content)if yl:    print yl.group(0)else:    print "what happen?"解析:首先创造了需要正则表达式匹配的字符串content;接着利用re.compile()来创建了我们所需要的匹配规则,创建了模式对象regu_cont;yl用来接收对内容content字符串进行regu_cont正则表达式实现match函数的结果如果有yl不为空,则使用m.group(index)输出查找到的子字符串
否则(返回值为None) print “what happen?”

match例子2
‘‘‘match如果查找到结果, 将返回一个 MatchObject,你可以查询 MatchObject 关于匹配字符串的相关信息了。MatchObject 实例也有几个方法和属性;最重要的那些如下所示:group() 返回被 RE 匹配的字符串start() 返回匹配开始的位置end() 返回匹配结束的位置span() 返回一个元组包含匹配 (开始,结束) 的位置‘‘‘import recontent="What are you doing? who is your mate?"regu_cont=re.compile("\w*wh\w*",re.I)yl=regu_cont.match(content)if yl:    print yl.group(0)else:    print "pass the test"print yl.group()print yl.start()print yl.end()print yl.span()

执行结果为:WhatWhat04(0, 4)

#search()方法与match()方法类似
import re
content=‘Where are you from? You look so hansome.‘
regex=re.compile(r‘\w*som\w*‘)
m=regex.search(content)
if m:
    print m.group(0)
else:
    print "Not found"
#相当于:import rem=re.search(r‘\w*som\w*‘,‘Where are you from? You look so handsome.‘,re.I)if m:    print m.group(0)else:    print "not found"
时间: 2024-10-12 18:54:19

python的re模块理解(re.compile、re.match、re.search)的相关文章

python中,有关正则表达式re函数:compile、match、search、findall

1.全局匹配函数 re.compile(pattern=pattern,re.S).findall(text)函数: compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对象拥有一系列方法用于正则表达式匹配和替换. import re string = 'dsfdspythondsfdsjpythonfds' pattern = '.python' s = re.compile(pattern=pattern).findall(string) print(s) 2.r

Python 正则表达式_re模块_使用compile加速

使用compile加速 compile( rule [,flag] ) 将正则规则编译成一个Pattern对象,以供接下来使用. 第一个参数是规则式,第二个参数是规则选项. 返回一个Pattern对象 直接使用findall ( rule , target )的方式来匹配字符串,一次两次没什么,如果是多次使用的话,由于正则引擎每次都要把规则解释一遍,而规则的解释又是相当费时间的,所以这样的效率就很低了.如果要多次使用同一规则来进行匹配的话,可以使用re.compile函数来将规则预编译,使用编译

python(23)re函数:compile、match、search、findall

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对象拥有一系列方法用于正则表达式匹配和替换. re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数. 参数说明: 函数参数说明: 参数 描述 pa

python 正则表达式 re模块基础

简介 正则表达式(regular expression)是可以匹配文本片段的模式.最简单的正则表达式就是普通字符串,可以匹配其自身.比如,正则表达式 'hello' 可以匹配字符串 'hello'. 要注意的是,正则表达式并不是一个程序,而是用于处理字符串的一种模式,如果你想用它来处理字符串,就必须使用支持正则表达式的工具,比如 Linux 中的 awk, sed, grep,或者编程语言 Perl, Python, Java 等等. 正则表达式有多种不同的风格,下表列出了适用于 Python

Python的re模块

Python的re模块 1.    compile(pattern):创建模式对象 import re pat = re.compile('A') m = pat.search('CBA') #等价于re.search(‘A’,’CBA’) print(m) #<_sre.SRE_Match object; span=(2, 3), match='A'> import re pat = re.compile('a') m = pat.search('CBA') print(m)     #没有

python 正则表达式re使用模块(match()、search()和compile())

摘录 python核心编程 python的re模块允许多线程共享一个已编译的正则表达式对象,也支持命名子组.下表是常见的正则表达式属性: 函数/方法 描述 仅仅是re模块函数 compile(pattern,flags=0) 使用任何可选的标记来编译正则表达式的模式 ,然后返回一个正则表达式对象 re模块函数和正则表达式对象的方法 match(pattern,string,flags=0) 尝试使用带有可选标记的正则表达式的模式来匹配字符串,成功则返回匹配的对象,失败则返回None search

关于python包,模块,.pyc文件和文件导入理解

参考文献 一.包 包是一个文件夹,用来存放模块和子包. 包里一般会有一个__init__.py的文件(也可以没有). 包里会有一个__pycache__文件夹,存放.py文件经解释器解释后的中间字节码(二进制文件). 二.模块 可以作为模块的文件有.py..pyc..pyo..pyd..so..dll文件. 三..pyc文件与.pyo文件 这两个文件都是二进制文件,由python解释器将.py文件转化成的二进制文件,目的是加快解释速度且可以隐藏源代码. python解释器在解释.py文件时,会优

PYTHON学习第二模块 python内置模块介绍

1 >>> import time 2 >>> time.time() 3 1491064723.808669 4 >>> # time.time()返回当前时间的时间戳timestamp(定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数)的方法,无参数 5 >>> time.asctime() 6 'Sun Apr 2 00:39:32 2017' 7 >>> # time.asctim

Python之re模块 —— 正则表达式操作

这个模块提供了与 Perl 相似l的正则表达式匹配操作.Unicode字符串也同样适用. 正则表达式使用反斜杠" \ "来代表特殊形式或用作转义字符,这里跟Python的语法冲突,因此,Python用" \\\\ "表示正则表达式中的" \ ",因为正则表达式中如果要匹配" \ ",需要用\来转义,变成" \\ ",而Python语法中又需要对字符串中每一个\进行转义,所以就变成了" \\\\ &