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 微信…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
