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

news2024/9/21 19:08:12

引言

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

文章目录

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

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

五、总结(思维导图)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1925510.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基础部分-变量

目录 1、一个程序就是一个世界,变量是程序的基本组成单位。 2、变量有三个基本要素:类型名称值 3、变量相当于内存中一个数据存储空间的表示 4、变量的使用步骤 (先定义后使用) 5、变量快速入门 6、格式化输出 7、程序中 号…

链接追踪系列-07.logstash安装json_lines插件

进入docker中的logstash 容器内: jelexbogon ~ % docker exec -it 7ee8960c99a31e607f346b2802419b8b819cc860863bc283cb7483bc03ba1420 /bin/sh $ pwd /usr/share/logstash $ ls bin CONTRIBUTORS Gemfile jdk logstash-core modules tools x-pack …

【Linux】进程控制的详细介绍

前言 在此之前,我们学过进程的概念,进程的状态,进程地址空间等一系列进程相关的问题。本章我们继续学习进程,我们要来学习一下进程的控制,关于进程等待,等问题。 目录 1.再次认识Fork函数1.1 fork()之后操…

什么是 Modbus协议?

一、网络中的协议是指什么? 网络协议是网络通信中至关重要的一部分,它定义了网络中两个或多个设备之间通信的规则、过程和格式。这些规则确保了计算机网络设备能够使用一种通用语言来传输和接收数据,而不管它们的设计、硬件或基础设施如何。…

MySQL-ubuntu环境下安装配置mysql

文章目录 什么是数据库?一、ubuntu环境下安装mysql二、配置mysql配置文件1.先登上root账号2.配置文件的修改show engines \G; mysql和mysqld数据库的基础操作登录mysql创建数据库显示当前数据库使用数据库创建表插入students表数据打印students表数据select * from …

【吊打面试官系列-ZooKeeper面试题】说说客户端注册 Watcher 实现?

大家好,我是锋哥。今天分享关于 【说说客户端注册 Watcher 实现? 】面试题,希望对大家有帮助; 说说客户端注册 Watcher 实现? 1、调用 getData()/getChildren()/exist()三个 API,传入 Watcher 对象 1000道…

数据结构(Java):树二叉树

目录 1、树型结构 1.1 树的概念 1.2 如何判断树与非树 1.3 树的相关概念 1.4 树的表示形式 1.4.1 孩子兄弟表示法 2、二叉树 2.1 二叉树的概念 2.2 特殊的二叉树 2.3 二叉树的性质 2.4 二叉树的存储 2.5 二叉树的遍历 1、树型结构 1.1 树的概念 树型结构是一种非线…

文本分类--NLP-AI(八)

文本分类任务 任务简介1.字符数值化方式1方式2 2.池化(pooling)3.全连接层4.归一化函数(Sigmoid)5.总结 从任务抽象新的技术点Embedding层池化层 任务简介 任务介绍: 字符串分类,根据一句话的含妈量&#…

air-conditioning

air-conditioning 空调机安装 实地测量: 测量宽度 测量高度 测试厚度 其他位置测量 根据实际绘图: 改进图,哈哈,让自己满意也让别人满意 1)需要考虑安装位置,减少高空放置,放置高空掉落 2&#…

YOLOv5和LPRNet的车牌识别系统

车牌识别系统 YOLOv5和LPRNet的车牌识别系统结合了深度学习技术的先进车牌识别解决方案。该系统整合了YOLOv5目标检测框架和LPRNet文本识别模型 1. YOLOv5目标检测框架 YOLO是一种先进的目标检测算法,以其实时性能和高精度闻名。YOLOv5是在前几代基础上进行优化的…

Mac应用程序清理卸载工具:App Cleaner Uninstaller for Mac 中文版

App Cleaner Pro是一款Mac上非常好用的软件卸载工具,支持应用卸载、Widget卸载、浏览器插件卸载,支持拖拽卸载和列表卸载,能够非常干净的卸载应用,节省你的磁盘空间。App Cleaner Uninstaller Pro是一款深度清理和卸载的工具&…

Postman下载及使用说明

Postman使用说明 Postman是什么? ​ Postman是一款接口对接工具【接口测试工具】 接口(前端接口)是什么? ​ 前端发送的请求普遍被称为接口 ​ 通常有网页的uri参数格式json/key-value请求方式post/get响应请求的格式json 接…

uboot默认配置过程

uboot默认配置,对于6ull来说,在uboot源码目录下执行:make mx6ull_14x14_evk_defconfig 1、make mx6ull_14x14_evk_defconfig mx6ull_14x14_evk_defconfig文件是在uboot源码configs/目录下面 执行过程分析 HOSTCC:编译一些.c文件 HOSTLD:制作出scripts/kconfig/conf这个…

[数仓]十二、离线数仓(Atlas元数据管理)

第1章 Atlas入门 1.1 Atlas概述 Apache Atlas为组织提供开放式元数据管理和治理功能,用以构建其数据资产目录,对这些资产进行分类和管理,并为数据分析师和数据治理团队,提供围绕这些数据资产的协作功能。 Atlas的具体功能如下: 元数据分类 支持对元数据进行分类管理,例…

【GD32】从零开始学GD32单片机 | WDGT看门狗定时器+独立看门狗和窗口看门狗例程(GD32F470ZGT6)

1. 简介 看门狗从本质上来说也是一个定时器,它是用来监测硬件或软件的故障的;它的工作原理大概就是开启后内部定时器会按照设置的频率更新,在程序运行过程中我们需不断地重装载看门狗,以使它不溢出;如果硬件或软件发生…

2024-07-13 Unity AI状态机2 —— 项目介绍

文章目录 1 项目介绍2 模块介绍2.1 BaseState2.2 ...State2.2.1 PatrolState2.2.2 ChaseState / AttackState / BackState 2.3 StateMachine2.4 Monster 3 其他功能4 类图 项目借鉴 B 站唐老狮 2023年直播内容。 点击前往唐老狮 B 站主页。 1 项目介绍 ​ 本项目使用 Unity 2…

C++基础(一)

目录 1.不同版本的hello word! 2.namespace和::域作用限定符以及using 2.1 namespace 2.2:: 2.3using用于展开域 3.C输入和输出 4.缺省参数 5.重载 6.引用 6.1引用介绍 6.2 引用的特性 注意: 6.4 c…

基于CSS两种菜单创建方式

作者:私语茶馆 1.前言 HTML多种场景下需要菜单的实现,这里提供两种方式: (1)基于CSS的POPUP式菜单 特征:按需显示POPUP菜单,但布局是浮动的。 (2)覆盖式弹出菜单。 …

独家揭秘!五大内网穿透神器,访问你的私有服务

本文精心筛选了五款炙手可热的内网穿透工具,它们各怀绝技,无论您是企业用户、独立开发者,还是技术探索者,这篇文章都物有所值,废话不多说,主角们即将上场。 目录 1. 巴比达 - 安全至上的企业护航者 2. 花…

二次改写内容,ai智能写作软件最便捷

对于自媒体创作者,二次改写是获取内容的一个不错的方法,通过二次改写不仅能提高自媒体内容创作的效率问题,而且还解决了创作中因灵感缺失产不出内容的问题,但是二次改写内容也是需要讲究方法的,如果没有好的方法&#…