Python————正则表达式
正则表达式
- 前言
- 一、正则表达式是什么?
- 二、使用模块 re
- 三、re 模块中的代码图示
- 3.1 re模块匹配单个字符
- 3.2 re模块匹配多个字符
- 3.3 re模块匹配开头跟结尾
- 3.4 re模块匹配分组
- 3.5 扩展:
- 总结
前言
- 在实际开发过程中经常会有查找符合某些规则的字符串
- 比如:邮箱、图片地址、手机号码等。想匹配或者查找符合某些规则的字符串就可以使用正则表达式了。
一、正则表达式是什么?
-
正则表达式(regular expression)描述了一种字符串匹配的模式,
1、比如:检索一个串是否含有某种子串(检索)
2、比如:匹配的子串做替换(替换)
3、比如:从一个串中取出符合某个条件的子串(提取) -
模式:一种特定的字符串模式,这个模式是通过一些特殊的符号组成的。
正则表达式并不是Python所特有的,在Java、PHP、Go以及JavaScript等语言中都是支持正则表达式的。
二、使用模块 re
# 第一步:导入re模块
import re
# 第二步:使用match方法进行匹配操作
result = re.match(pattern正则表达式, string要匹配的字符串, flags=0)
#flags : 可选,表示匹配模式,比如忽略大小写,多行模式等
# 第三步:如果数据匹配成功,使用group方法来提取数据
result.group()
三、re 模块中的代码图示
3.1 re模块匹配单个字符
代码 | 功能 |
---|---|
. | 匹配任意1个字符(除了\n) |
[ ] | 匹配 [ ] 中列举的字符 |
[^指定字符] | 匹配除了指定字符以外的所有字符 |
\d | 匹配数字,即0-9 |
\D | 匹配非数字,即不是数字 |
\s | 匹配空白,即 空格,tab键 |
\S | 匹配非空白 |
\w | 匹配非特殊字符,即a-z、A-Z、0-9、_、汉字 |
\W | 匹配特殊字符,即非字母、非数字、非汉字 |
3.2 re模块匹配多个字符
代码 | 功能 |
---|---|
* | 匹配前一个字符出现0次或者无限次,即可有可无 |
+ | 匹配前一个字符出现1次或者无限次,即至少有1次 |
? | 匹配前一个字符出现1次或者0次,即要么有1次,要么没有 |
{n} | 恰好n次, 多一次少一次都不行. |
{n, } | 至少n次, 至多无所谓 |
{n,m} | 至少 n 次, 至多 m 次, 包括 n 和 m |
3.3 re模块匹配开头跟结尾
代码 | 功能 |
---|---|
^ | 匹配字符串开头 |
$ | 匹配字符串结尾 |
3.4 re模块匹配分组
代码 | 功能 |
---|---|
| | 匹配左右任意一个表达式 |
(ab) | 将括号中字符作为一个分组 |
\num | 引用分组num匹配到的字符串 |
3.5 扩展:
- (?P <分组名>) 给分组起名字
- (?P = 分组名) 使用指定分组的内容
总结
- 正则表达式的代码跟功能图示。
相关文章:

Python————正则表达式
正则表达式 前言一、正则表达式是什么?二、使用模块 re三、re 模块中的代码图示3.1 re模块匹配单个字符3.2 re模块匹配多个字符3.3 re模块匹配开头跟结尾3.4 re模块匹配分组3.5 扩展: 总结 前言 在实际开发过程中经常会有查找符合某些规则的字符串 比如:…...

将你的github仓库设置为web代理
将你的github仓库设置为web代理 废话不多说,直接上步骤 废话不多说,直接上步骤 创建一个仓库,上传静态web。 2. 设置仓库的 page 1)点击 “Settings” 如图设置...

CTFHub技能树-Git泄漏-Index
目录 一、Git索引(Index)的基本概念 二、解题过程 主旨:使用git泄漏恢复源代码 方法一:使用GitHack手动恢复 方法二:直接使用Git_Extract获取网站源代码拿去flag 当前大量开发人员使用git进行版本控制,…...

vb.net发送邮件:如何高效地实现邮件发送?
vb.net发送邮件怎么配置服务器?怎么用vb.net发邮件? 如何高效地实现vb.net发送邮件,确保邮件能够快速、稳定地送达,是许多开发者面临的挑战。AokSend将深入探讨vb.net发送邮件的最佳实践,帮助您提升邮件发送的效率和可…...

mycat双主高可用架构部署-水评分表-范围分片配置
MySQL5.7服务器IP是192.168.31.209及192.168.31.210 vi /usr/local/mycat/conf/schema.xml <?xml version"1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat"http://io.mycat/"><schema n…...

开发模型例题
答案:A 解析:瀑布模型是跟对需求明确的项目 增量模型是将需求分为多个阶段,适合一开始需求不明确的 演化模型适合用户需求不清,需求经常变化的情况 螺旋模型适合庞大,复杂且具有高风险的系统...

一文搞懂 TS中 函数、枚举、别名 | TypeScript 入门指南 06
大家好,我是王天~ 这篇文章是 ts入门指南系列中第6 篇,主要讲解ts中的 函数、枚举、别名应用~ 如有不对的地方 欢迎留言反馈哈 函数 在TypeScript中,可选参数和默认参数、剩余参数以及函数重载可以帮助我们更灵活地定义和使用函数。 1、可…...

基于JAVA+SpringBoot+Vue的前后端分离的图书馆管理系统
基于JAVASpringBootVue的前后端分离的图书馆管理系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接&#…...

基于SpringBoot+Vue的鲜花销售/鲜花商城/花店管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的鲜花销售…...

信号发生器在扫描模式下输出正弦波信号,需要注意设置哪些参数
在信号发生器工作于扫描模式(Sweep Mode)并输出正弦波信号的情况下,需对设备进行以下关键参数设置: 1、波形设置 选择波形:正弦波(Sine Wave) 正弦波是常见的周期性波形,在扫描模式…...

xss-labs-master通关教程
一.level1 先来进行一下代码审计 <?php ini_set("display_errors", 0);//关闭错误显示 $str $_GET["name"]; //接受URL来的get形式的name传参 echo "<h2 aligncenter>欢迎用户".$str."</h2>";//在网页输出&#x…...

断点回归模型
断点回归(Regression Discontinuity Design, RDD)是一种准实验设计方法,用于评估政策或其他干预措施的效果。这种方法利用了一个清晰的阈值或“断点”,在这个阈值上,处理状态(例如是否接受某种干预…...

app广告推送常见业务术语
DAU: 日活跃用户(Daily Active Users) GMV: 商品交易总额(Gross Merchandise Volume) DSP=demand side platform=需求方平台 DMP=data management platform数据管理平台 ADX=ad exchange=广告交…...

2024/9/11 小型PLC典型应用2:伺服canlink配置、指令、应用
下面这个指令需要设置伺服的急停方式(例如:惯性停机、急停等等) 通讯故障步骤排查 1:接线问题 2:配置问题(波特率.....)...

在IDEA中如何创建web项目?——不使用Archetype
二、不使用Archetype 1、创建Maven项目 (1)首先打开Project Structure:File——>Project Structure或者快捷键crtlaltshifts (2)Module——>New Module: (3)在新打开的页面下…...

基于C#+SQL Server2008 开发三层架构(CS界面)图书管理系统
图书管理系统 一、项目背景及意义 当今由于信息技术的飞速发展,图书馆作为社会知识信息媒介的功能日益重要,网络环境下的信息资源建设知识仓库的设计,开放存取学术交流模式,知识管理系统,智能检索,数字参…...

AIGC简化文件管理:Python自动重命名Word和PDF文件
1.背景 大家应该也有遇到,自己电脑有很多文件命名不合理的文件,比如:文件1、想法3 ,当你长时间再看到这个文件的时候,已经很难知道文件内容。 今天我们将借助AIGC的编码能力,帮我们生成一个批量改文件名的…...

产线工控安全之防勒索病毒杀手锏
在当今数字化时代,数据安全已成为企业运营中不可或缺的一部分。勒索病毒和内部泄密事件的频发,使得企业必须采取更为严格的安全措施来保护其关键数据和运营系统。苏州深信达网络科技推出的MCK主机加固解决方案,正是为了应对这些挑战而设计的。…...

超详细超实用!!!网站开发页面适配360浏览器兼容模式
云风网 云风笔记 云风知识库 开发网站偶尔会遇到需要兼容ie的需求,这里以360浏览器为例,360浏览器是基于Chrome和IE双核浏览器,在极速模式下是跟谷歌浏览器内核一致的,兼容模式下的内核是IE内核。这里尤其是360兼容模式下&#x…...

【Redis】主从复制 - 源码
因为主从复制的过程很复杂, 同时核心逻辑主要集中在 replication.c 这个文件中, 避免篇幅过大, 所以将主从复制中涉及这个文件的代码集中到了另一篇文章。 在当前文章主要分析主从复制的大体代码逻辑, 如果需要了解整体的过程, 可以配合 Redis 主从复制 - relication 源码分析 …...

Redis:缓存击穿
缓存击穿(热点key): 部分key(被高并发访问且缓存重建业务复杂的)失效,无数请求会直接到数据库,造成巨大压力 1.互斥锁:可以保证强一致性 线程一:未命中之后,获取互斥锁,再查询数据库重建缓存,写…...

一文说清什么是数据仓库
01 数据仓库的概念 数据仓库的概念可以追溯到20世纪80年代,当时IBM的研究人员开发出了“商业数据仓库”。本质上,数据仓库试图提供一种从操作型系统到决策支持环境的数据流架构模型。 目前对数据仓库(Data Warehouse)的标准定义&a…...

【算法】哈希表相关
【ps】本篇有 5 道 leetcode OJ。 一、算法简介 哈希表是一种存储数据的容器,可以快速查找某个元素,其查找的时间复杂度为 O(1),非常合适需要频繁查找某一个元素的场景。其具体用法为: 直接使用底层为哈希表的 STL 容器。用数组…...

企微机器人:企业数字化转型的得力助手
在数字化转型的浪潮中,企业对于提高运营效率、降低人力成本的需求日益迫切。企微机器人,作为基于企业微信平台开发的一种智能工具,以其高度自动化、灵活性强、安全性高和易于使用的特点,迅速成为企业内部的得力助手。本文将深入探…...

Linux编程之socket入门教程 socket通讯原理
在Linux网络编程中,套接字Socket是进程间通信的基础,用来在网络上不同主机间进行数据的发送和接收。套接字作为一种抽象的接口,它屏蔽了底层网络协议的复杂性,使得开发者可以专注于数据的传输。以下将详细介绍Linux网络编程中的So…...

Windows上安装RabbitMQ
rabbitmq是干嘛的我就不介绍了,直接开始安装教程。 搭建成功演示图 下载安装包 https://pan.baidu.com/s/1ZlCFxh9Q00ynSU3ZCpTC9Q?pwdry51pan.baidu.com/s/1ZlCFxh9Q00ynSU3ZCpTC9Q?pwdry51 下载完后有两个包(erlang和rabbitmq) 先安装otp_win64_24.1.7.exe…...

【C++ 高频面试题】构造函数和析构函数你了解多少呢?
文章目录 1. 什么是构造函数和析构函数2. 构造函数和析构函数可以是虚函数吗3. 构造函数有哪几种4. 深拷贝和浅拷贝的区别 1. 什么是构造函数和析构函数 🐧 构造函数: 构造函数是在创建对象时自动调用的特殊成员函数。 目的:初始化对象的成…...

linux中vim介绍以及常用命令大全
前言 在Linux系统中,Vim是一个功能强大的文本编辑器,它广泛应用于服务器管理、脚本编写和程序开发中。Vim拥有两种模式:命令模式和插入模式。了解和掌握常用的Vim命令对于提高文本编辑效率至关重要。本文将详细介绍Vim的常用命令,…...

线性代数 第六讲 特征值和特征向量_相似对角化_实对称矩阵_重点题型总结详细解析
文章目录 1.特征值和特征向量1.1 特征值和特征向量的定义1.2 特征值和特征向量的求法1.3 特征值特征向量的主要结论 2.相似2.1 相似的定义2.2 相似的性质2.3 相似的结论 3.相似对角化4.实对称矩阵4.1 实对称矩阵的基本性质4.2 施密特正交化 5.重难点题型总结5.1 判断矩阵能否相…...

CSS“多列布局”(补充)——WEB开发系列35
多列布局是一种非常常见的布局方式,适用于内容丰富的页面,如新闻网站、杂志或博客。 一、CSS多列布局概述 CSS多列布局允许我们将内容分成多个垂直列,使页面布局更加灵活和多样化。多列布局的主要属性包括 column-count、column…...