广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Python技术 > 正文

Python3的compile函数_惠州计算机Python软件开发

作者:黄君发布时间:2021-01-13分类:Python技术浏览:1165


导读:compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

语法格式为:

re.compile(pattern[, flags])

参数:

  • pattern : 一个字符串形式的正则表达式

  • flags 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:


    • 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 为了增加可读性,忽略空格和' # '后面的注释

实例

>>>import re

>>> pattern = re.compile(r'\d+')                    # 用于匹配至少一个数字

>>> m = pattern.match('one12twothree34four')        # 查找头部,没有匹配

>>> print( m )

None

>>> m = pattern.match('one12twothree34four', 2, 10) # 从'e'的位置开始匹配,没有匹配

>>> print( m )

None

>>> m = pattern.match('one12twothree34four', 3, 10) # 从'1'的位置开始匹配,正好匹配

>>> print( m )                                        # 返回一个 Match 对象

<_sre.SRE_Match object at 0x10a42aac0> 

>>> m.group(0)   # 可省略 0'12'

>>> m.start(0)     # 可省略 03

>>> m.end(0)      # 可省略 05

>>> m.span(0)    # 可省略 0

(3, 5)


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

  • group([group1, …]) 方法用于获得一个或多个分组匹配的字符串,当要获得整个匹配的子串时,可直接使用 group() 或 group(0)

  • start([group]) 方法用于获取分组匹配的子串在整个字符串中的起始位置(子串第一个字符的索引),参数默认值为 0;

  • end([group]) 方法用于获取分组匹配的子串在整个字符串中的结束位置(子串最后一个字符的索引+1),参数默认值为 0;

  • span([group]) 方法返回 (start(group), end(group))



再看看一个例子:

实例

>>>import re

>>> pattern = re.compile(r'([a-z]+) ([a-z]+)', re.I)   # re.I 表示忽略大小写

>>> m = pattern.match('Hello World Wide Web')

>>> print( m )                            # 匹配成功,返回一个 Match 对象

<_sre.SRE_Match object at 0x10bea83e8> 

>>> m.group(0)                            # 返回匹配成功的整个子串

'Hello World'

>>> m.span(0)                             # 返回匹配成功的整个子串的索引

(0, 11)

>>> m.group(1)                            # 返回第一个分组匹配成功的子串

'Hello'

>>> m.span(1)                             # 返回第一个分组匹配成功的子串的索引

(0, 5)

>>> m.group(2)                            # 返回第二个分组匹配成功的子串

'World'

>>> m.span(2)                             # 返回第二个分组匹配成功的子串索引

(6, 11)

>>> m.groups()                            # 等价于 (m.group(1), m.group(2), ...)

('Hello', 'World')

>>> m.group(3)                            # 不存在第三个分组

Traceback (most recent call last):

    File "<stdin>", line 1, in <module>

IndexError: no such group



点击咨询直接了解更多相关资料,我在惠州北大青鸟新方舟等你。

622762d0f703918f77154fb4413d269758eec48c.png

标签:惠州计算机软件培训惠州计算件软件开发惠州计算机软件基础惠州计算机Python软件开发惠州Python培训


Python技术排行
标签列表
网站分类
文章归档
最近发表