当前位置:首页>python>Python开发从零开始-36.4-正则表达式

Python开发从零开始-36.4-正则表达式

  • 2026-09-10 06:37:07
Python开发从零开始-36.4-正则表达式

接上文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 正则表达式的相关知识。

最新文章

随机文章