接上文Python开发从零开始-36.3-正则表达式,本文小编与大家分享 Python 正则表达式的相关知识。
二、Python 正则表达式
在 Python 中,使用内置的 re 模块来处理正则表达式。re 模块提供了一组函数和常量,允许开发者在字符串中进行模式匹配、搜索和替换操作,使 Python 语言拥有完整的正则表达式功能。
(一)导入 re 模块
要使用 Python 正则表达式功能,首先需导入 re 模块。
import re(二)re 模块中的常用函数
1、re.match()
re.match() 函数用于从字符串的起始位置(字符串的开头)匹配正则表达式模式字符串。
(1)基本语法
re.match(pattern, string, flags=0)
pattern:str 类型,正则表达式模式字符串。建议使用 r'字符串' 语法构建,这样可以避免反斜杠的转义问题;
string:str 类型,被匹配的字符串;
flags:int 类型 (可选),正则表达式修饰符,取值为 re 模块中的常量,例如:忽略大小写使用 re.I 或 re.IGNORECASE。这些常量可以使用位或运算符 | 来组合多个标志;
返回值: 如果起始位置与模式字符串匹配成功,返回 re.Match 对象;否则返回 None。
注意:
re.match() 只从字符串开头匹配,不会扫描字符串中间的部分;
re.match() 可根据需要使用修饰符(flags 参数)。
(2)re.Match 对象
re.Match 对象是在使用 re 模块进行正则表达式匹配时返回的一个对象。这个对象代表了匹配成功的结果,包含了关于匹配的详细信息。
re.Match 对象的常用方法包括:
group(): 返回匹配的字符串;
groups(): 返回一个包含所有分组匹配的元组;
groupdict(): 返回一个字典,包含所有命名分组的匹配;
start(): 返回匹配的起始位置;
end(): 返回匹配的结束位置;
span(): 返回一个元组,包含匹配的起始和结束位置;
string(): 返回原始字符串;
re(): 返回该匹配使用的正则表达式对象。
(3)编程示例
① 开头匹配情况

② 开头不匹配情况

2、re.search()
re.search() 函数用于扫描整个字符串并返回第一个成功的匹配。与 re.match() 不同,re.search() 不要求从字符串开头匹配,它会在整个字符串中搜索。
(1)基本语法
re.search(pattern, string, flags=0)
pattern:str 类型,正则表达式模式字符串;
string:str 类型,被匹配的字符串;
flags:int 类型 (可选),正则表达式修饰符;
返回值: 如果在字符串中找到匹配,返回以第一匹配对象(re.Match 对象) ;否则返回 None。
(2)编程示例
① re.match() 和 re.search() 的区别

② 使用 flags 参数,在字符串中搜索时忽略大小写。

3、re.findall()
re.findall() 用于查找字符串中所有匹配项,并以列表形式返回。
(1)基本语法
re.findall(pattern, string, flags=0)
pattern:str 类型,正则表达式模式字符串;
string:str 类型,被匹配的字符串;
flags:int 类型 (可选),正则表达式修饰符;
返回值: 如果存在匹配项,返回所有匹配项列表;否则返回空列表。
(2)编程示例
① 使用分组提取多个内容

② 查找字符串中所有手机号

4、re.finditer()
re.finditer() 返回匹配结果的迭代器,每个元素是 re.Match 对象,适合处理大量匹配时节省内存。
(1)基本语法
re.finditer(pattern, string, flags=0)
pattern:str 类型,正则表达式模式字符串;
string:str 类型,被匹配的字符串;
flags:int 类型 (可选),正则表达式修饰符;
返回值: 如果存在匹配项,返回一个匹配对象(re.Match)迭代器;否则返回空迭代器。
(2)编程示例

受文章篇幅所限,下文将继续介绍 Python 正则表达式的相关知识。