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

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

五、总结(思维导图)

相关推荐
一千柯橘6 分钟前
python 项目搭建(类比 node 来学习)
python
洗澡水加冰8 分钟前
n8n搭建多阶段交互式工作流
后端·llm
陈随易9 分钟前
Univer v0.8.0 发布,开源免费版 Google Sheets
前端·后端·程序员
sduwcgg11 分钟前
python的numpy的MKL加速
开发语言·python·numpy
大模型真好玩12 分钟前
可视化神器WandB,大模型训练的必备工具!
人工智能·python·mcp
东方佑14 分钟前
使用 Python 自动化 Word 文档样式复制与内容生成
python·自动化·word
六月的雨在掘金15 分钟前
通义灵码 2.5 | 一个更懂开发者的 AI 编程助手
后端
钢铁男儿20 分钟前
Python 接口:从协议到抽象基 类(定义并使用一个抽象基类)
开发语言·python
databook28 分钟前
当机器学习遇见压缩感知:用少量数据重建完整世界
python·机器学习·scikit-learn
暴力求解32 分钟前
C++类和对象(上)
开发语言·c++·算法