【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"

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

五、总结(思维导图)

相关推荐
Mac分享吧1 分钟前
OmniGraffle Pro for Mac 思维导图软件安装
经验分享·笔记·学习·macos·mac·思维导图·omnigraffle
快下雨了L5 分钟前
UE5学习笔记18-使用FABRIK确定骨骼的左手位置
笔记·学习·ue5
虚心求知的熊16 分钟前
Lesson 10.1 超参数优化与枚举网格的理论极限和随机网格搜索 RandomSearchCV
人工智能·python·机器学习
空白诗16 分钟前
【人工智能】Python实现文本转换为语音:使用gTTS库实现
开发语言·人工智能·python
Pluses19 分钟前
Datawhale X 魔搭 AI夏令营 第四期魔搭-AIGC文生图方向Task1笔记
人工智能·笔记·学习·aigc
KinMan谨漫31 分钟前
【无标题】
spring boot·redis·后端
炽天使32839 分钟前
自建 git 服务器
服务器·git·学习·程序人生
flaxxxccc41 分钟前
c++ string类的简单模拟实现
开发语言·c++
Rookie也要加油42 分钟前
QT中文乱码解决
笔记·qt·学习
小泽耳机数码推荐家43 分钟前
无线蓝牙耳机哪个品牌好?四大热门爆款品牌推荐
python·django·virtualenv·pygame