Python re模块 正则表达式之compile函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python re模块 正则表达式之compile函数相关的知识,希望对你有一定的参考价值。

参考技术A

为了重复利用同一个正则对象,需要多次使用这个正则表达式的话,使用re.compile()保存这个正则对象以便复用,可以让程序更加高效。

1)re.compile

参数:

re.I 忽略大小写

re.L 表示特殊字符集 w, W, b, B, s, S 依赖于当前环境

re.M 多行模式

re.S 即为\' . \'并且包括换行符在内的任意字符(\' . \'不包括换行符)

re.U 表示特殊字符集 w, W, b, B, d, D, s, S 依赖于 Unicode 字符属性数据库

re.X 为了增加可读性,忽略空格和\' # \'后面的注释

案例:

在上面,当匹配成功时返回一个 Match 对象,其中:

2)re.findall

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。

注意: match 和 search 是匹配一次 findall 匹配所有。

参数:

案例:

3)re.finditer

和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。

案例:

4)re.split

split 方法按照能够匹配的子串将字符串分割后返回列表。

案例:

从上篇Python re模块 正则表达式到这篇,我们已经把常用的正则匹配的方法学会了。

关注我,坚持每日积累一个技巧, 长期坚持 ,我们将会不断进步。

#python# #程序员# #请回答,你的年度知识点# #教育听我说# #计算机#

python正则表达式之re模块使用

python第一个正则表达式

r‘imooc‘  Pattern Match result

In [2]: import re

In [3]: pa = re.compile(rimooc)
#re的compile方法生成pattern对象

In [4]: type(pa)
Out[4]: _sre.SRE_Pattern

In [5]: pa.
pa.findall     pa.fullmatch   pa.match       pa.search      pa.subn
pa.finditer    pa.groupindex  pa.pattern     pa.split       
pa.flags       pa.groups      pa.scanner     pa.sub     

In [8]: str = imooc python

In [9]: pa.match(str)
#pattern对象的match方法对字符串进行匹配
Out[9]: <_sre.SRE_Match object; span=(0, 5), match=imooc> 
In [10]: ma = pa.match(str) 

In [11]: ma. 
ma.end ma.group ma.lastgroup ma.re ma.start ma.endpos ma.groupdict 
ma.lastindex ma.regs ma.string ma.expand ma.groups ma.pos ma.span 

In [11]: ma.group() 
Out[11]: imooc 
#返回匹配到的字符串

In [15]: ma.span() 
Out[15]: (0, 5)
#返回匹配到的字符串下标索引

 

In [1]: import re

In [2]: pa = re.compile(rimooc,re.I)
#忽略字母大小写

In [3]: pa
Out[3]: re.compile(rimooc, re.IGNORECASE|re.UNICODE)

In [4]: ma = pa.match(imooc python)

In [5]: ma.group()
Out[5]: imooc

In [6]: ma = pa.match(Imooc python)

In [7]: ma.group()
Out[7]: Imooc

In [8]: ma = pa.match(ImoOc python)

In [9]: ma.group()
Out[9]: ImoOc

In [10]: ma.groups()
Out[10]: ()

In [11]: pa = re.compile(r(imooc),re.I)

In [12]: ma = pa.match(imooc)

In [13]: ma.group()
Out[13]: imooc

In [14]: ma.groups()
Out[14]: (imooc,)
#以分组的形式返回

In [15]: ma = re.match(rimooc,imooc python)
#compile和match可进行合并

In [16]: ma.group()
Out[16]: imooc

 

以上是关于Python re模块 正则表达式之compile函数的主要内容,如果未能解决你的问题,请参考以下文章

python之re模块

Python之正则re模块 --- findall()详解

re模块之re.match

python常用模块之——正则re模块

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

Python 正则re模块之compile()和findall()详解