Python 正则表达式常用特殊字符及其含义
以下是 Python 正则表达式常用特殊字符及其含义 的全面整理,涵盖了常见和重要的正则符号,以及它们的示例,适合用来写博客或学习使用:
Python 正则表达式常用特殊字符及其含义
1. . (点号)
- 含义:匹配除换行符
\n以外的任意单个字符。 - 示例:
import re pattern = r"a.b" print(re.match(pattern, "acb")) # 匹配成功,"a.b" 中间任意字符 print(re.match(pattern, "a\nb")) # 不匹配,中间是换行符
2. ^ (脱字符)
- 含义:匹配字符串的开头。
- 示例:
pattern = r"^Hello" print(re.match(pattern, "Hello world")) # 匹配成功 print(re.match(pattern, "world Hello")) # 不匹配
3. $ (美元符)
- 含义:匹配字符串的结尾。
- 示例:
pattern = r"world$" print(re.search(pattern, "Hello world")) # 匹配成功 print(re.search(pattern, "Hello world!")) # 不匹配
4. * (星号)
- 含义:匹配前面的字符零次或多次。
- 示例:
pattern = r"ab*" print(re.match(pattern, "a")) # 匹配成功,b 出现零次 print(re.match(pattern, "abbb")) # 匹配成功,b 出现多次
5. + (加号)
- 含义:匹配前面的字符一次或多次。
- 示例:
pattern = r"ab+" print(re.match(pattern, "ab")) # 匹配成功,b 出现一次 print(re.match(pattern, "a")) # 不匹配,至少需要一个 b
6. ? (问号)
- 含义:匹配前面的字符零次或一次。
- 示例:
pattern = r"ab?" print(re.match(pattern, "a")) # 匹配成功,b 出现零次 print(re.match(pattern, "ab")) # 匹配成功,b 出现一次 print(re.match(pattern, "abb")) # 不匹配,b 出现两次
7. {n}, {n,}, {n,m} (量词限定符)
- 含义:
{n}:匹配前一个字符恰好 n 次。{n,}:匹配至少 n 次。{n,m}:匹配至少 n 次,至多 m 次。
- 示例:
pattern = r"ab{2,4}" print(re.match(pattern, "abb")) # 匹配成功,b 出现 2 次 print(re.match(pattern, "abbbb")) # 不匹配,b 超过 4 次
8. [...] (字符类)
- 含义:匹配方括号内的任意字符。
[a-z]:表示范围,匹配从a到z的任意字符。[^...]:取反,匹配不在方括号内的任意字符。
- 示例:
pattern = r"[aeiou]" print(re.match(pattern, "apple")) # 匹配成功,匹配元音字母 'a'pattern2 = r"[^aeiou]" print(re.match(pattern2, "hello")) # 匹配 'h',不是元音字母
9. - (连字符/减号)
- 含义:在字符类中,表示范围。
[a-z]:从a到z。[A-Z]:从A到Z。[-]:如果-出现在开头或结尾,匹配减号本身。
- 示例:
pattern = r"[a-z0-9]" print(re.match(pattern, "5")) # 匹配成功,数字在范围内 print(re.match(pattern, "g")) # 匹配成功,字母在范围内
10. | (管道符)
- 含义:表示逻辑 "或",匹配左边或右边的规则。
- 示例:
pattern = r"cat|dog" print(re.match(pattern, "cat")) # 匹配成功 print(re.match(pattern, "dog")) # 匹配成功
11. () (分组和捕获)
- 含义:将多个字符作为一个整体进行匹配,并捕获组内容。
- 示例:
pattern = r"(ab)+" print(re.match(pattern, "abab")) # 匹配成功
12. \ (反斜杠)
- 含义:用于转义特殊字符,或表示特殊的匹配序列。
\d:匹配数字[0-9]。\s:匹配空白字符(如空格、制表符)。\w:匹配字母、数字和下划线[a-zA-Z0-9_]。\D、\S、\W:与上述序列的反义。
- 示例:
pattern = r"\d+" print(re.match(pattern, "12345")) # 匹配成功 print(re.match(pattern, "abc")) # 不匹配
13. \b 和 \B (单词边界)
\b:匹配单词边界。\B:匹配非单词边界。- 示例:
pattern = r"\bcat\b" print(re.search(pattern, "a cat sat")) # 匹配成功,完整的单词 'cat'pattern2 = r"cat\B" print(re.search(pattern2, "concatenate")) # 匹配成功,'cat' 后非边界
14. 零宽断言 (Lookaround)
(?=...):正向肯定预查。(?!...):正向否定预查。(?<=...):后向肯定预查。(?<!...):后向否定预查。- 示例:
pattern = r"(?<=\$)\d+" print(re.search(pattern, "价格是$100")) # 匹配 '100',不包括 '$'
15. 命名组和引用
(?P<name>...):定义命名分组。(?P=name):引用命名分组。- 示例:
pattern = r"(?P<number>\d+)\s+(?P=number)" print(re.match(pattern, "123 123")) # 匹配两个相同的数字
以上内容全面涵盖了 Python 正则表达式中的常用特殊字符及其含义,并结合示例展示了每个符号的实际用法,适合用于博客或深入学习。
相关文章:
Python 正则表达式常用特殊字符及其含义
以下是 Python 正则表达式常用特殊字符及其含义 的全面整理,涵盖了常见和重要的正则符号,以及它们的示例,适合用来写博客或学习使用: Python 正则表达式常用特殊字符及其含义 1. . (点号) 含义:匹配除换行符 \n 以外…...
Uniapp Android SpringBoot3 对接支付宝支付(最新教程附源码)
Uniapp Android SpringBoot3 对接支付宝支付(最新教程附源码) 1、效果展示2、后端实现2.1 引入支付宝SDK依赖 pom.xml2.2 配置 application.yml2.3 支付宝相关代码2.3.1 AlipayConfig.java2.3.2 ZfbPayConfig.java2.3.3 支付接口2.3.4 支付回调处理接口&…...
SQL DML 语句
CREATE TABLE classes (ClassID varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 班级ID,ClassName varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 班级名称,TeacherID varchar(20) CHARACTER SET utf8mb4…...
饲料颗粒机全套设备有哪些机器组成
颗粒饲料机主要用于将各种饲料原料(如玉米、豆粕、麦麸、鱼粉等)进行混合、压制,制成颗粒状的饲料。这种饲料不仅方便储存和运输,还能提高动物的采食效率和饲料利用率。同时,颗粒饲料在加工过程中能灭部分微生物和寄生…...
MySQL事务与锁
定义一个事务向d_eams数据库的student表中插入3条记录,并检验若插入相同的学号,则回滚事务,既插入无效,否则成功提交 delimiter $$ create procedure tr_proc() begindeclare continue handler for sqlstate 23000beginrollback;…...
汽车免拆案例 | 2007款宝马650i车发动机偶尔无法起动
故障现象 一辆2007款宝马650i车,搭载N62B48B发动机,累计行驶里程约为26万km。车主反映,发动机偶尔无法起动,故障频率较低,十几天出现1 次,且故障出现时起动机不工作。 故障诊断 接车后试车,…...
PostgreSQL和Oracle的sql差异
PostgreSQL和Oracle的sql差异 1.rownum (1)Oracle分页查询使用rownum,PostgreSQL使用limit offset ORACLEPOSTGRESQLselect * from (select rownum r,e.* from emp e where rownum <5) t where r>0;select * from emp limit 5 offset…...
SpringMvc完整知识点二(完结)
SpringMVC获取请求参数 环境准备工作等均省略,可详见快速入门,此处只写非共有部分代码 该部分示例项目SpringMvcThree已上传至Gitee,可自行下载 客户端请求参数的格式为:namevalue&passwordvalue... ... 服务端想要获取请求…...
29 - Java Serializable 序列化
Java的Serializable接口是Java序列化机制的核心,它允许一个对象的状态被转换为字节流,从而可以方便地进行存储或传输。 序列化后的对象可以被写到数据库、存储到文件系统,或者通过网络传输。 要在 Java 中使一个类可序列化,你需要…...
59 基于STM32的烟雾、红外、温湿度检测
所有仿真详情导航: PROTEUS专栏说明-CSDN博客 目录 一、主要功能 二、硬件资源 三、主程序编程 四、资源下载 一、主要功能 基于SMT32F103C8T6单片机,采用DHT11检测温湿度,采用光敏电阻检测光照,采用滑动变阻器分别模拟红外、烟雾,通过OLED显示屏显示,如果湿度过低…...
使用Excel 对S型曲线加减速算法进行仿真
项目场景: 项目场景:代码中写了S型加减速算法,相查看生成的加减速数组,直观的展示出来,USB通信一次64字节,对于我几个个32位的频率值不太方便,于是采用Excel进行仿真。 代码中如何生成S加减速曲…...
flink-connector-mysql-cdc:01 mysql-cdc础配置代码演示
flink-connector-mysql-cdc: 01 mysql-cdc基础配置代码演示02 mysql-cdc高级扩展03 mysql-cdc常见问题汇总04 mysql-cdc-kafka生产级代码分享05 flink-kafka-doris生产级代码分享06 flink-kafka-hudi生产级代码分享 flink-cdc版本:3.2.0 flink版本&…...
java计算机毕设课设—进销存管理系统(附源码、文章、相关截图、部署视频)
这是什么系统? 资源获取方式再最下方 java计算机毕设课设—进销存管理系统(附源码、文章、相关截图、部署视频) 一、项目简介 项目名称: 基于Java的进销存管理系统 开发背景: 在现代企业管理中,库存管理是核心环节之一&#…...
鸿蒙UI开发——渐变色效果
1、概 述 ArkTs可以通过颜色渐变接口,设置组件的背景颜色渐变效果,实现在两个或多个指定的颜色之间进行平稳的过渡。 目前提供三种渐变类型:线性渐变、角度渐变、径向渐变。 我们在鸿蒙UI布局实战 —— 个人中心页面开发中,默认…...
嵌入式硬件设计 — 智能设备背后的隐形架构大师
目录 引言 一、嵌入式硬件设计概述 (一)需求分析 (二)硬件选型 (三)电路设计 (四)PCB 制作与焊接 (五)硬件调试与测试 (六)软…...
QNX的系统资源访问机制
资料参考: QNX官网文档 在QNX中,一些系统的资源默认是无法访问的,或者可访问的范围过大,导致产生不可控的危险,此时便需要对系统资源进行访问限制 接口如下 #include <sys/rsrcdbmgr.h> #include <sys/rsrcdbmsg.h>int rsrcdbmgr_create(...
高校数字化运营平台解决方案:构建统一的服务大厅、业务平台、办公平台,助力打造智慧校园
教育数字化是建设教育强国的重要基础,利用技术和数据助推高校管理转型,从而更好地支撑教学业务开展。 近年来,国家多次发布政策,驱动教育行业的数字化转型。《“十四五”国家信息化规划》,推进信息技术、智能技术与教育…...
多模态大型语言模型MM-1.5采用数据驱动的方法,通过不断优化数据组合提高模型性能
多模态大型语言模型MM-1.5采用数据驱动的方法,通过不断优化数据组合提高模型性能 MM-1.5模型的设计核心在于其数据驱动的方法,这意味着模型的性能在很大程度上取决于所使用的数据类型和组合。这种方法的实施细节可以从以下几个方面来展开: …...
16 设计模式之适配器模式(充电器转换案例)
一、适配器模式的定义 适配器模式(Adapter Pattern)是一种结构型设计模式,常用于解决接口不兼容的问题。适配器模式通过引入一个“适配器”类,将一个接口转化为客户端期望的另一种接口,使得原本因接口不兼容而无法交互…...
基于Java Springboot在线招聘APP且微信小程序
一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
