当前位置: 首页 > news >正文

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————正则表达式

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

将你的github仓库设置为web代理

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

CTFHub技能树-Git泄漏-Index

目录 一、Git索引&#xff08;Index&#xff09;的基本概念 二、解题过程 主旨&#xff1a;使用git泄漏恢复源代码 方法一&#xff1a;使用GitHack手动恢复 方法二&#xff1a;直接使用Git_Extract获取网站源代码拿去flag 当前大量开发人员使用git进行版本控制&#xff0c…...

vb.net发送邮件:如何高效地实现邮件发送?

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

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…...

开发模型例题

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

一文搞懂 TS中 函数、枚举、别名 | TypeScript 入门指南 06

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

基于JAVA+SpringBoot+Vue的前后端分离的图书馆管理系统

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

基于SpringBoot+Vue的鲜花销售/鲜花商城/花店管理系统

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

信号发生器在扫描模式下输出正弦波信号,需要注意设置哪些参数

在信号发生器工作于扫描模式&#xff08;Sweep Mode&#xff09;并输出正弦波信号的情况下&#xff0c;需对设备进行以下关键参数设置&#xff1a; 1、波形设置 选择波形&#xff1a;正弦波&#xff08;Sine Wave&#xff09; 正弦波是常见的周期性波形&#xff0c;在扫描模式…...

xss-labs-master通关教程

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

断点回归模型

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

app广告推送常见业务术语

DAU: 日活跃用户(Daily Active Users) GMV: 商品交易总额&#xff08;Gross Merchandise Volume&#xff09; DSP&#xff1d;demand side platform&#xff1d;需求方平台 DMP&#xff1d;data management platform数据管理平台 ADX&#xff1d;ad exchange&#xff1d;广告交…...

2024/9/11 小型PLC典型应用2:伺服canlink配置、指令、应用

下面这个指令需要设置伺服的急停方式&#xff08;例如&#xff1a;惯性停机、急停等等&#xff09; 通讯故障步骤排查 1&#xff1a;接线问题 2&#xff1a;配置问题&#xff08;波特率.....&#xff09;...

在IDEA中如何创建web项目?——不使用Archetype

二、不使用Archetype 1、创建Maven项目 &#xff08;1&#xff09;首先打开Project Structure&#xff1a;File——>Project Structure或者快捷键crtlaltshifts &#xff08;2&#xff09;Module——>New Module&#xff1a; &#xff08;3&#xff09;在新打开的页面下…...

基于C#+SQL Server2008 开发三层架构(CS界面)图书管理系统

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

AIGC简化文件管理:Python自动重命名Word和PDF文件

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

产线工控安全之防勒索病毒杀手锏

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

超详细超实用!!!网站开发页面适配360浏览器兼容模式

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

【Redis】主从复制 - 源码

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

告别‘偏科’模型:用CAST双流架构搞定视频动作识别,兼顾时空理解

时空双流协同&#xff1a;CAST架构如何重塑视频动作识别的平衡之道 视频动作识别正面临一个关键瓶颈——现有模型往往在时空理解上"偏科"。就像人类大脑需要左右半球协同工作才能完整理解世界一样&#xff0c;理想的视频理解模型也需要同时具备敏锐的空间感知和精准的…...

RK3576开发板AP6275S无线模块调试:从驱动到应用实战

1. 项目概述&#xff1a;从零上手RK3576的无线模块调试最近在折腾一块基于瑞芯微RK3576的国产工业评估板——眺望电子的EVM-RK3576。这块板子接口资源相当丰富&#xff0c;双千兆网口、CAN、RS485、USB3.0等一应俱全&#xff0c;对于做工业网关、边缘计算盒子或者多媒体终端的开…...

Sora 2生成帧精度达99.7%的LUT匹配方案,DaVinci色彩科学全链路对齐指南

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Sora 2与DaVinci整合的底层逻辑与技术共识 Sora 2 作为新一代视频生成基础模型&#xff0c;其核心能力建立在时空联合建模与长程依赖捕获之上&#xff1b;DaVinci 则是面向专业影视工作流的高性能非线性编辑与…...

A/B测试还在用t检验?DeepSeek团队淘汰传统方法的4个关键转折点(含贝叶斯动态决策引擎实测对比)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;A/B测试范式迁移的必然性 传统A/B测试长期依赖静态流量分配、固定实验周期与人工决策闭环&#xff0c;在现代高并发、多场景、实时反馈的业务系统中正面临三重结构性失配&#xff1a;实验吞吐量低、决策…...

MODBUS调试助手开发全解析:从协议原理到实战避坑指南

1. 项目概述与核心价值在工业自动化、楼宇自控、能源监控这些领域里混迹了十几年&#xff0c;我打交道最多的通讯协议&#xff0c;除了各种现场总线&#xff0c;就是MODBUS了。无论是RS-232、RS-485串口&#xff0c;还是后来普及的TCP/IP网络&#xff0c;MODBUS协议以其简单、开…...

保姆级教程:在S32G274ARDB2上,用IPCF点亮RGB LED(附源码解析)

从零玩转S32G2核间通信&#xff1a;手把手实现IPCF控制RGB灯效 拿到S32G274A开发板的第一天&#xff0c;我就被那个三色RGB LED吸引了——这不仅是硬件调试的指示灯&#xff0c;更是验证核间通信的绝佳媒介。作为多核异构处理器&#xff0c;S32G2的A53与M7核心如何协同工作&…...

别再为EDFA仿真报错发愁了!手把手教你用OptiSystem搞定‘Initial Delay’和‘Iterations’设置

光通信仿真实战&#xff1a;EDFA参数调优与收敛问题深度解析 第一次打开OptiSystem完成EDFA仿真时&#xff0c;看到红色报错提示框弹出那种手足无措的感觉&#xff0c;相信很多工程师都记忆犹新。不同于简单的单向光路设计&#xff0c;掺铒光纤放大器&#xff08;EDFA&#xff…...

ADAU1452/1467硬件设计避坑:手把手教你从原理图到SigmaStudio的通道映射(含AD1938实例)

ADAU1452/1467硬件设计实战&#xff1a;从原理图到SigmaStudio的通道映射全解析 在嵌入式音频系统设计中&#xff0c;ADAU1452和ADAU1467作为业界广泛使用的数字信号处理器&#xff0c;其硬件接口配置一直是工程师面临的典型挑战。特别是当系统需要连接多通道编解码器&#xff…...

2026-05-21:变成目标数组的最少操作次数。用go语言,给定两个长度相同的数组 nums 和 target。 - nums[i] 表示当前位置 i 当前的值。 - target[i] 表示当前位

2026-05-21&#xff1a;变成目标数组的最少操作次数。用go语言&#xff0c;给你两个长度为 n 的整数数组 nums 和 target。nums[i] 表示当前位置 i 的当前值&#xff0c;target[i] 表示你希望当前位置 i 最终变成的期望值。 你可以进行任意多次操作&#xff08;可以不做&#x…...

告别重启!3DSlicer 5.6.0 下 Python Extension 热重载调试指南

告别重启&#xff01;3DSlicer 5.6.0 下 Python Extension 热重载调试指南 在3DSlicer的Python扩展开发中&#xff0c;最令人沮丧的莫过于每次修改代码后都需要重启整个应用才能看到效果。这种开发模式不仅效率低下&#xff0c;还会打断开发者的思路。本文将深入探讨如何在3DSl…...