【python学习】python标准库之正则表达式库re的定义、功能和函数,以及正则表达式的元字符和含义

引言

re 库是Python标准库的一部分,不需要额外安装。要使用 re 库,只需在代码中导入它

文章目录

  • 引言
  • 一、re库的定义
  • [二、`re` 库中常用的功能和函数:](#二、re 库中常用的功能和函数:)
    • [2.1 搜索模式](#2.1 搜索模式)
    • [2.2 查找模式](#2.2 查找模式)
    • [2.3 替换模式](#2.3 替换模式)
    • [2.4 分割模式](#2.4 分割模式)
    • [2.5 编译模式](#2.5 编译模式)
    • [2.6 错误信息](#2.6 错误信息)
    • [2.7 支持的模式](#2.7 支持的模式)
    • [2.8 匹配对象](#2.8 匹配对象)
  • 三、正则表达式的定义
  • 四、正则表达式的元字符及其含义
    • [4.1 点号 `.`](#4.1 点号 .)
    • [4.2 星号 `*`](#4.2 星号 *)
    • [4.3 加号 `+`](#4.3 加号 +)
    • [4.4 问号 `?`](#4.4 问号 ?)
    • [4.5 竖线 `|`](#4.5 竖线 |)
    • [4.6 括号 `()`](#4.6 括号 ())
    • [4.7 反斜杠 `\`](#4.7 反斜杠 \)
    • [4.8 反斜杠后跟数字 `\n`](#4.8 反斜杠后跟数字 \n)
    • [4.9 美元符号 `\`](#4.9 美元符号 ``)
    • 4.10 井号 `#`
    • [4.11 双引号 `"`](#4.11 双引号 ")
    • [4.12 单引号 `'`](#4.12 单引号 ')
    • [4.13 花括号 `{n,m}`](#4.13 花括号 {n,m})
    • [4.14 花括号 `{n,}`](#4.14 花括号 {n,})
    • [4.15 花括号 `{n}`](#4.15 花括号 {n})
  • 五、总结(思维导图)

一、re库的定义

re库 是一个内置的库,用于处理正则表达式(Regular Expression)

正则表达式是一种强大的文本处理工具,可以用于搜索、匹配、替换、分割字符串等操作

二、re 库中常用的功能和函数:

2.1 搜索模式

  • re.search(pattern, string, flags=0): 在字符串中搜索正则表达式的匹配
  • re.match(pattern, string, flags=0): 在字符串的开始位置搜索正则表达式的匹配
  • re.fullmatch(pattern, string, flags=0): 在字符串的整个长度上搜索正则表达式的匹配

2.2 查找模式

  • re.findall(pattern, string, flags=0): 在字符串中查找所有匹配正则表达式的子串,并返回一个列表
  • re.finditer(pattern, string, flags=0): 在字符串中查找所有匹配正则表达式的子串,并返回一个迭代器

2.3 替换模式

  • re.sub(pattern, repl, string, count=0, flags=0): 在字符串中替换所有匹配正则表达式的子串
  • re.subn(pattern, repl, string, count=0, flags=0): 在字符串中替换所有匹配正则表达式的子串,并返回替换后的字符串和替换次数

2.4 分割模式

  • re.split(pattern, string, maxsplit=-1, flags=0): 在字符串中根据正则表达式的匹配进行分割,并返回一个列表

2.5 编译模式

  • re.compile(pattern, flags=0): 将正则表达式编译成一个模式对象,以便重复使用

2.6 错误信息

  • re.error: 捕获 re 模块中的错误

2.7 支持的模式

  • re.I: 忽略大小写。
  • re.M: 多行模式,影响 ^$ 的行为
  • re.S: 点号匹配所有字符,包括换行符
  • re.X: 扩展模式,允许正则表达式中包含注释和空白字符

2.8 匹配对象

  • match 对象:表示匹配到的结果。
  • match 对象可以访问 group()start()end()span() 等方法

三、正则表达式的定义

正则表达式(Regular Expression)是一种强大的文本模式匹配工具,它允许你定义一系列字符串的规则,然后使用这些规则来查找、匹配或替换文本中的模式

在正则表达式中,有一些特殊的字符被称为"元字符"(Metacharacters),它们用来表示特殊的字符集、定位点、重复匹配等

四、正则表达式的元字符及其含义

4.1 点号 .

  • 匹配除换行符 \n 之外的所有单个字符

4.2 星号 *

  • 匹配前面的字符零次或多次
  • 例如,a* 匹配 "a", "aa", "aaa", ... 以及任何长度的字符串

4.3 加号 +

  • 匹配前面的字符一次或多次
  • 例如,a+ 匹配 "aa", "aaa", ... 以及任何长度的字符串

4.4 问号 ?

  • 匹配前面的字符零次或一次
  • 例如,a? 匹配 "a" 或 ""

4.5 竖线 |

  • 表示逻辑或,匹配任意一个选项
  • 例如,a|b 匹配 "a" 或 "b"

4.6 括号 ()

  • 用于分组,可以用来组合匹配模式
  • 例如,(a|b)+ 匹配 "aa" 或 "ab" 或 "aaa" 或 "aba" 等

4.7 反斜杠 \

  • 用于转义字符,使其失去特殊含义
  • 例如,\d 匹配一个数字,而 d 则匹配字符 "d"

4.8 反斜杠后跟数字 \n

  • 表示匹配新行,其中 n 是数字,代表换行符的位置
  • 例如,\n 匹配换行符,\0 匹配字符串的结束

4.9 美元符号 $

  • 匹配字符串的末尾
  • 例如,a$ 匹配以 "a" 结尾的字符串

4.10 井号 #

  • 通常用于注释,但不同的编程语言可能会有不同的解释
  • 例如,在Python中,# 用于注释,但在正则表达式中,它没有特殊含义

4.11 双引号 "

  • 在正则表达式中,双引号用于引用字符串,使其作为一个整体进行匹配
  • 例如,"a" 匹配字符串 "a"

4.12 单引号 '

  • 类似于双引号,单引号也用于引用字符串,使其作为一个整体进行匹配
  • 例如,'a' 匹配字符串 "a"

4.13 花括号 {n,m}

  • 匹配前面的字符 nm
  • 例如,a{2,4} 匹配 "aaa" 或 "aaaa"

4.14 花括号 {n,}

  • 匹配前面的字符至少 n
  • 例如,a{2,} 匹配 "aa" 或 "aaaaa" 等

4.15 花括号 {n}

  • 匹配前面的字符恰好 n
  • 例如,a{2} 匹配 "aa"

这些元字符在正则表达式中扮演着关键角色,它们允许你创建复杂的匹配模式,从而有效地处理文本数据
注意:在使用这些元字符时,需要注意它们可能会在不同的编程语言中具有不同的特殊含义

五、总结(思维导图)

相关推荐
A懿轩A4 分钟前
C/C++ 数据结构与算法【数组】 数组详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·数组
古希腊掌管学习的神5 分钟前
[搜广推]王树森推荐系统——矩阵补充&最近邻查找
python·算法·机器学习·矩阵
云边有个稻草人8 分钟前
【优选算法】—复写零(双指针算法)
笔记·算法·双指针算法
半盏茶香9 分钟前
在21世纪的我用C语言探寻世界本质 ——编译和链接(编译环境和运行环境)
c语言·开发语言·c++·算法
Evand J1 小时前
LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度
开发语言·matlab
LucianaiB1 小时前
探索CSDN博客数据:使用Python爬虫技术
开发语言·爬虫·python
Ronin3051 小时前
11.vector的介绍及模拟实现
开发语言·c++
计算机学长大白2 小时前
C中设计不允许继承的类的实现方法是什么?
c语言·开发语言
PieroPc3 小时前
Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印
开发语言·python·excel
2401_857439696 小时前
SSM 架构下 Vue 电脑测评系统:为电脑性能评估赋能
开发语言·php