正则表达式---【Python版】

news2024/9/24 13:23:42

目录

前言

一.正则表达式概括

1.1简介

1.2使用场景

二.正则表达式语法

2.1基本匹配

2.2元字符

2.2.1点运算符.

2.2.2字符类[]

2.2.3否定字符类

2.2.4*号

2.2.5+号

2.2.6?号

2.2.7{}号

2.2.8()号

2.2.9|或运算

 2.2.10转码特殊字符\

2.2.11^和$

2.3简写字符

前言

一个正则表达式在线练习网站:

练习网站

学习正则表达式,一定要多加练习,效率翻倍!

一.正则表达式概括

1.1简介

正则表达式是一组由字母和符号组成的特殊文本,它可以用来从文本中找出满足你想要的格式的句子,正则表达式常用缩写是:“regex”、“regexp

例如:寻找“T”开头的英文单词

1.2使用场景

使用正则表达式可以很方便的帮我们在大量“字符串”中搜寻到我们想要的信息,如果我们爬取某个网站的HTML,需要当中的某个信息,可以使用正则表达式搜寻

再比如某些算法题牵扯到字符串,我们也可以使用正则表达式来匹配

二.正则表达式语法

2.1基本匹配

基本匹配很简单,比如我们就需要“the”这个单词,那么写下即可:

因此基本匹配,多用于我们需要一个“固定且唯一”的结果

2.2元字符

如果我们需要匹配动态变化的字符串,就需要用到元字符

而正则表达式也主要依赖于“元字符”实现复杂匹配

元字符介绍:

元字符描述
.句号匹配任意单个字符
[]字符种类,匹配方括号内的任意字符
[^]否定的字符种类,匹配除了方括号内字符的任意字符
*匹配>=0个的重复的在*号前的字符
+匹配>=1个的的重复的在+号前的字符
?标记之前的字符为可选[匹配或不匹配]
{n,m}控制匹配数量,匹配num个大括号之前的字符或字符集(n<=num<=m)
(xyz)字符集,匹配与xyz完全相同的字符串
|或运算符,匹配符号前或后的字符
\转义字符,匹配一些保留字符如“[]”、“()”、“+”、“?”等
^从开头向末尾匹配
$从末尾向前匹配

下面开始依次介绍“13”种元字符

2.2.1点运算符.

.是元字符中最简单的元字符,.匹配任意单个字符,但不匹配换号符

如“.he”用于匹配:“任意一个字符后跟着he”的字符串

 

2.2.2字符类[]

字符类[]也叫字符集,在方括号中的“连字符”来指定字符集的范围,在方括号中的字符不关心顺序,如果某个字符在字符集中出现过,那么该字符就会被匹配到,相当于编程中的如下伪代码

if s in 字符类:

   s is a target

 

注意:如果在字符类中出现“.”,则此时表示匹配“.”号,而不是任意一个字符,这是因为字符类的优先级大于“.”点元字符!!

2.2.3否定字符类

匹配除了方括号内字符的任意字符,一般“^”放在句子开头,用于表示这个字符类是否定的

 

2.2.4*号

*号匹配在*之前出现大于等于0次的字符,也就是说使用*号可以匹配没有出现过的字符!!

 

可以看到“the”、“he”都被匹配到了,因为“t”此时可以出现一次出现多次都是符合要求的!!

使用“.”和“*”搭配,可以匹配所有的字符串

2.2.5+号

+号匹配+号之前字符出现大于等于1次,也就是前面的字符至少出现一次!

 

2.2.6?号

号表示在字符前面的字符为可选,即“出现1次”或“出现0次”,这与“*”号是有区别的,“*”号是“出现0次”或“出现n次

 

2.2.7{}号

{}是一个范围量词,用来限定一个字符一个字符集可以重复出现的次数

{}内可以是一个“固定值”,用来表示出现固定次数

也可以是一个[n,m]的区间,用来表示出现[n,m]次的都可以

 固定值:

范围区间:

2.2.8()号

()号用于固定一组字符集,表示()内的字符串是一个整体,匹配时应按照整体进行匹配

 

2.2.9|或运算

或运算符是一个判断条件,只需要|运算符两边有一个满足条件就可以匹配,同时遵循编程语言中的“短路效应

 2.2.10转码特殊字符\

反斜线\在表达式中用于转码紧跟其后的字符,使后面的字符失去元字符的作用,成为一个待匹配的普通字符

(\s表示空格)

2.2.11^和$

^表示在字符串开头匹配,而&表示在字符串结尾匹配

 不使用^和$时:

使用^后:

使用$后:

可以看到“$”和“^”只返回匹配到的第一个结果

2.3简写字符集

正则表达式提供了一些简写的字符集,用来帮助我们简化书写

简写字符集描述
.除换行符以外的所有字符
\w匹配所有字母数字,等同于[a-zA-Z0-9]
\W匹配所有非字母数字,等同于[^a-zA-Z0-9]
\d匹配数字:[0-9]
\D匹配非数字:[^0-9]
\s匹配所有空格字符:[\t\n\f\r\p]
\S匹配所有非空格字符:[^\t\n\f\r\p]
\f匹配一个换页符
\n匹配一个换行符
\r匹配一个回车符
\t匹配一个制表符
\v匹配一个垂直制表符
\p匹配\r\n相当于dos终止符

 记忆方法:“小写的如s、d、w”表示所有,“大写的如S、D、W”表示所有非

“w” 即:“word”简写

“d”即:“digit”简写

“s”即:“space”简写

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

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

相关文章

CSS实现三栏自适应布局(两边固定,中间自适应)

绝对定位的元素会脱离文档流&#xff0c;它们是相对于包含块&#xff08;通常是最近的具有相对定位、绝对定位或固定定位属性的父元素&#xff09;进行定位的。当你把一个绝对定位的元素的高度设置为100%时&#xff0c;它会相对于其包含块的高度来确定自己的高度。如果包含块是…

SecureCRT自动保存串口打印的日志到文件

点击Options->Edit Default Session->Log File 在Log file name中输入X\Log\%H\%Y-%M-%D_%h-%m%s.log X根据自己的盘符做修改 如果遇到log文件无法自动保存&#xff1a;点击File选中Log Session

MySQL8.0.36-社区版:错误日志(3)

mysql有个错误日志&#xff0c;是专门记录错误信息的&#xff0c;这个功能默认是开启的 一般都是在/var/log/mysqld.log 日志中存放 1.错误日志的位置 首先我们使用命令去查看一下&#xff0c;这个错误日志文件究竟在哪 进入到mysql中&#xff0c;使用命令 show variables…

Nvidia DGX 系统分析和探讨

NVIDIA DGX 互联结构 NVIDIA DGX 是Nvidia 推出的turnkey 解决方案&#xff0c;其中按照组合关系: DGX GB200 System: NVL72 36 Nvidia Grace CPU72 BlackWell GPU每台机柜包含18 个GB200 计算节点&#xff0c;每个节点包含2 个GB200s9 个NVSwitches Tray 节点&#xff0c;每个…

从AdTech转战Martech,驰骛科技的PaaS之路

中国最早的Adtech公司之一&#xff0c;在被全资收购后&#xff0c;其创始团队又创立了一家Martech公司。赛道的变更也从侧面反映出中国营销技术市场的发展轨迹。 驰骛科技创始团队来自易传媒核心团队&#xff0c;驰骛科技创始人程华奕是易传媒创始人兼CTO&#xff0c;是中国最早…

UE4 避免布料模拟重置后抖动

问题&#xff1a;每次设置带布料模拟的布料新位置&#xff0c;就会发生突然的抖动 解决办法&#xff1a;给“布料混合权重”或“布料最大距离缩放”K帧&#xff0c;参考数值为0.2—1&#xff08;红框内的值都试过无法解决&#xff09;

C++ | Leetcode C++题解之第23题合并K个升序链表

题目: 题解&#xff1a; class Solution {// 21. 合并两个有序链表ListNode *mergeTwoLists(ListNode *list1, ListNode *list2) {auto dummy new ListNode(); // 用哨兵节点简化代码逻辑auto cur dummy; // cur 指向新链表的末尾while (list1 && list2) {if (list1…

资深亚马逊运营实战技巧:跨境电商6大选品法

1、工具选品法 比如店雷达&#xff0c; 通过大数据分析工具选出来利基产品或者通过工具选出来利基的市场&#xff0c;然后再通过分析市场来得到产品。 以女装为例&#xff0c;通过大数据分析&#xff0c;全方位对市场需求、款式、质量等进行多维度判断&#xff0c;其中SKU销量…

Windows 远程不要再用 mstsc 了,这款开源神器才是YYDS(带项目源码)

PRemoteM 是一款现代的远程会话管理和启动器&#xff0c;它让你能够在任何时候快速开启一个远程会话。目前 PRemoteM 已支持 微软远程桌面(RDP)、VNC、SSH、Telnet、SFTP, FTP, RemoteApp等协议。 1、PRemoteM 简介 如果你远程连接windows桌面仍旧在使用winR&#xff0c;输入…

MQTT-day01

MQTT是什么 MQTT&#xff1a; message queuing telemetry transport &#xff0c;消息队列遥测传输协议&#xff0c;&#xff0c;是一种基于发布/订阅(publish/subscribe) 模式的“轻量级”通讯协议&#xff0c;&#xff0c;该协议构建于 tcp/ip协议上&#xff0c;&#xff0c…

几款高效在线文档编辑器推荐,编辑文档更轻松

在数字化时代&#xff0c;文档编辑工作变得越来越重要。无论是工作报告、学习笔记还是创意文稿&#xff0c;一个优秀的在线文档编辑器都能让你的工作事半功倍。现在市面上也有很多优秀的在线文档编辑器&#xff0c;比如WPS Office、腾讯文档、 Microsoft Word Online。今天&…

文心一言 VS 讯飞星火 VS chatgpt (237)-- 算法导论17.3 3题

三、考虑一个包含 n 个元素的普通二叉最小堆数据结构&#xff0c;它支持 INSERT 和 EXTRACT-MIN 操作、最坏情况时间均为 O(lg n) 。给出一个势数 Φ &#xff0c;使得 INSERT 操作的摊还代价为 O(lg n) &#xff0c;而 EXTRACT-MIN 操作的摊还代价为 O(1) &#xff0c;证明它是…

React-样式使用

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;React篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:React-样式使用 目录 1、行内样式 2、使用className属性 3、css module模块化 4、styled-c…

Python学习笔记23 - 目录操作

os模块操作目录相关函数 os.path模块操作目录相关函数 案例1 —— 列出指定目录下的所有.py文件 案例2 —— walk()

C++ 红黑树模拟实现

&#x1f493;博主CSDN主页:麻辣韭菜&#x1f493;   ⏩专栏分类&#xff1a;C知识分享⏪   &#x1f69a;代码仓库:C高阶&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习更多C知识   &#x1f51d;&#x1f51d; 前言 前面我们实现了AVL树&#xff0c;发明AVL树…

Datapump数据迁移方案

环境准备 确认源数据库和目标数据库的版本 确保源数据库和目标数据库的Oracle版本兼容&#xff0c;以保证Datapump工具能够正常工作。 硬件资源检查 确认源数据库和目标数据库服务器的硬件资源&#xff08;如CPU、内存、存储空间&#xff09;能够满足数据迁移的需求。 网络连…

Java里的线程神器:ThreadLocal

今天我们要学习一种在JAVA线程中至关重要的类——ThreadLocal。 ThreadLocal是一个强大的JAVA类&#xff0c;它能实现线程局部变量的功能。通过ThreadLocal&#xff0c;每一个线程都可以拥有自己的一份变量副本&#xff0c;互相之间不会影响操作&#xff0c;真正做到数据隔离。…

Linux 5.10 Pstore 学习之(二) 原理学习

目录 编译框架模块初始化pstore子系统ramoops模块初始化实例化注册回调数据结构 pstore_blk模块pstore_zone模块 测试扩展调试 编译框架 目标结构 linux_5.10/fs/pstore/ ├── blk.c ├── ftrace.c ├── inode.c // 核心1 ├── internal.h ├── Kconfig ├── …

音乐文件逆向破解

背景 网易云等在线音乐文件的加密源码都按照一定的规则加密&#xff0c;通过对音乐文件的源码分析转化&#xff0c;有望实现对加密文件的解密 实现内容 实现对加密音乐文件的解密 实现对无版权的音乐文件的转化 实现环境 010editor 010 Editor是一个专业的文本编辑器和十六…

IDEA pom.xml显示灰色并被划线

在使用 IDEA 进行开发的过程中&#xff0c;有时候会遇到 pom.xml 显示灰色并被划线的情况&#xff0c;如下图&#xff1a; 这一般是因为该文件被 Maven 忽略导致的&#xff0c;可以进行如下操作恢复&#xff1a; 设置保存后&#xff0c;可以看到 pom.xml 恢复了正常&#xff1a…