complie()函数预编译正则表达式

Python中的re模块是正则表达式模块,该模块提供了文本匹配查找、文本替换、文本分割等功能。re模块中常用的函数及方法如表1所示。 Python技术文章2021-01-28 |传智教育 |complie()函数预编译正则表达式

如果需要对一个正则表达式重复使用,那么可以使用compile()函数对其进行预编译,以避免每次编译正则表达式的开销。complie()函数语法格式如下:

compile(pattern, flags=0)

上述格式中的参数pattern表示一个正则表达式,参数flags用于指定正则匹配的模式,该参数的常用取值如表1所示。

表11-1 常用的匹配模式

flags 说明
re.I 忽略大小写
re.L 做本地化识别(locale-aware)匹配,使预定义字符集\w、\W、\b、\B、\s、\S取决于当前区域设定
re.M 多行匹配,影响^和$
re.S 使.匹配所有字符,包括换行符
re.U 根据Unicode字符集解析字符
re.A 根据ASCII字符集解析字符
re.X 允许使用更灵活的格式(可以是多行、忽略空白字符、可加入注释)书写正则表达式,以便表达式更易理解

complie()函数的用法如下所示:

import re
regex_obj = re.compile(r'\d')

以上第2行代码中,通过compile()函数将正则的匹配模式“\d”预编译为正则对象regex_obj。

假设当前有一组字符串“Today is March 28, 2019.”,通过正则对象regex_obj的findall()方法就可以查找到所有的匹配结果,示例代码如下:

words = 'Today is March 28, 2019.'
print(regex_obj.findall(words))

以上示例中的findall()函数用于获取目标文本中所有符合条件的内容。

运行代码,结果如下所示:

['2', '8', '2', '0', '1', '9']

如果想要匹配一组字符串中所有的英文字母,可通过设置flags参数忽略英文字母的大小写,具体代码如下:

import re
regex_one = re.compile(r'[a-z]+', re.I)
words = 'Today is March 28, 2019.'
print(regex_one.findall(words))

上述代码中的匹配模式“[a-z]+”表示匹配最少匹配一次小写英文字母,当设置flags参数为re.I后该匹配模式便会忽略英文字母的大小写,匹配结果将会包含字符串words中的所有英文字母。

运行代码,结果如下所示:

['Today', 'is', 'March']

猜你喜欢:Python函数详细教程,顶你看2天的视频课!

Python正则表达式re模块常用函数有哪些?

Python随机函数random用法介绍[python培训]

传智教育Python数据分析课程

Python教程

NumPy数组有几种创建方法?

2021-7-8 22:09:58

Python教程技术教程

Python实战开发项目视频教程:美多商城开发实战【传智教育】

2021-7-8 22:13:05

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索