第11.15节 Python正则表达式转义符定义的特殊序列

Python 正则表达式的转义符“\“ 而其中的"\“作为转义符,也是使用起来比较重要的一部分。在正则表达式中,“\t"和”\n"分别表示制表符和换行符。但是,在需要匹配制表符和换行符时,也需要使用"\"来进行转义。在正则表达式中,有一些特殊字符如"$“、”^“、”*“等,这些字符有着特殊的含义,如果我们需要匹配这些字符本身时,就需要使用”\"来进行转义。除了以上提到的特殊字符外,正则表达式中还有一些特殊字符,如"|“、”()“等。总结:以上是Python正则表达式中转义符"\"的功能介绍和示例代码。希望对大家有所帮助!4.其他特殊字符的匹配。 阅读详情

一、 引言
在前面《第11.13节 Python正则表达式的转义符”\”功能介绍》介绍了正则表达式转义符'\',只不过当时作为转义符主要是用于在正则表达式中表示元字符自身的需要进行的转义。实际上,除了元字符使用转义符外,Python还支持由'\'和一个ASCII数字或ASCII字母字符组成的特殊序列,这些特殊代表特殊的含义。 如果'\'后面跟的字符不是ASCII数字或者ASCII字母,那么正则样式将直接匹配后面跟的字符,如’\$’ 匹配字符 ‘$’。

二、 特殊序列

  1. \number
    number表示一个ASCII数字,\number表示数字代表的组。正则表达式中每个括号是一个组,组从1开始编号。关于组和组号的介绍及案例请大家参考后续章节《第11.16节 Python正则元字符“()”(小括号)与组(group)匹配模式》、《第11.17节 Python 组匹配模式扩展的命名组功能及组的反向引用》。
    注意如果 number 的第一个数字是0, 或者 number 是三个八进制数,它将不会被看作是一个组的序号,而是一个八进制的数字。在 ‘[’ 和 ‘]’ 字符集合内,任何数字转义都被看作是数字字符。
  2. \A
    只匹配字符串开始, 该功能与match函数的功能基本相同,与脱字符“^”在多行模式(搜索标记中包含re.MULTILINE,关于搜索标记的含义请见《第11.2节 Python re模块函数概览》)处理不同,其他方面基本相同。
    例子:
>>> m=re.search(r'\A([A-Z][a-z]*) ([A-Z].*)','Learning Python with LaoYuan!')
>>> m.groups()
('Learning', 'Python with LaoYuan!')
>>>
  1. \b 匹配一个单词的边界
    \b 匹配一个单词的边界用于匹配一个单词的边界,本身匹配结果为空字符串,但用于分隔一个单词的左边界或右边界,当用于左边界时,表示匹配时其后面的字符是一个单词的开始,其前面不能有单词字符,当用于右边界时,表示正则表达式前面的单词至此结束,匹配时后面不能再有单词字符。
    例如:
>>> re.search(r'\bPython','LaoYuanPython accompanies you learning Python')
<re.Match object; span=(39, 45), match='Python'>
>>> re.search(r'Python\b','LaoYuanPython accompanies you learning Python')
<re.Match object; span=(7, 13), match='Python'>
>>>

由于“LaoYuanPython”中的“‘Python’”不是一个独立单词,前面还有单词字符,因此当要匹配左边界时不符合匹配条件,因此第一个语句匹配的是后面的“Python”,而第二个语句是右边界的匹配,此时“LaoYuanPython”后面没有单词字符,因此可以匹配。
\b本身匹配的是一个空字符串,即它解析时不占用字符串的字符。如:

>>> re.search(r'Python\b a','LaoYuanPython accompanies you learning Python')
<re.Match object; span=(7, 15), match='Python a'>
从上面例子可以看到\b并不影响后面的空格和字母a的匹配,即它没有消耗搜索字符,本身匹配的是空字符串。
  1. \B 匹配一个单词的非边界
    \B 匹配一个单词的非边界,即\B所在位置必须有一个单词字符,不能在词的开头或者结尾,其匹配结果本身为空字符串,不消耗搜索字符。如下面的例子,匹配的是后一个Python:
>>> re.search(r'\BPython','Learning Python with LaoYuanPython')
<re.Match object; span=(28, 34), match='Python'>
  1. \d匹配数字
    对于 字符串,匹配任何Unicode十进制数(就是在Unicode字符目录[Nd]里的字符)。这包括了 [0-9] ,和很多其他的数字字符。如果设置了 ASCII 标志,就只匹配 [0-9] 。
    对于字节码bytes类型:匹配任何十进制数,就是 [0-9]。
    案例:
re.search(r'(\d*)','123123一二三壹贰叁①②③123')
<re.Match object; span=(0, 6), match='123123'>
  1. \D匹配非数字
    匹配任何非十进制数字的字符。就是 \d 取非。 如果设置了 ASCII 标志,就相当于 [^0-9] 。

  2. \s匹配空白字符
    对于字符串str类型:匹配任何Unicode空白字符(包括 [ \t\n\r\f\v] ,还有很多其他字符,比如不同语言排版规则约定的不换行空格)。如果 ASCII 搜索标记被设置,就只匹配字符集 [ \t\n\r\f\v] 。
    对于字节码bytes类型:匹配ASCII中的空白字符,就是匹配字符集 [\t\n\r\f\v] 。

  3. \S 匹配非空白字符
    匹配任何非空白字符。就是 \s 取非。如果设置了 ASCII 标志,就相当于 [^ \t\n\r\f\v] 。

  4. \w 匹配词语字符
    对于 Unicode (str) 样式:
    匹配Unicode词语的字符,包含了可以构成词语的绝大部分字符,也包括数字和下划线。如果设置了 ASCII 标志,就只匹配 [a-zA-Z0-9_] 。
    对于8位(bytes)样式:
    匹配ASCII字符中的数字和字母和下划线,就是 [a-zA-Z0-9_] 。如果设置了 LOCALE 标记,就匹配当前语言区域的数字和字母和下划线。

  5. \W
    匹配任何非词语字符。是 \w 取非。如果设置了 ASCII 标记,就相当于 字符集[^a-zA-Z0-9_] 。如果设置了 LOCALE 标志,就匹配当前语言区域的 非 词语字符。

  6. \Z匹配字符串尾
    匹配字符串尾,就表示匹配串必须位于字符串结尾,该功能与元字符 类 似 , 但 在 多 行 模 式 下 , Z 不 能 支 持 识 别 非 最 后 一 行 的 行 尾 , 而 类似,但在多行模式下,\Z不能支持识别非最后一行的行尾,而 类似,但在多行模式下,Z不能支持识别非最后一行的行尾,而可以。如:

>>> re.search(r'(\d*)\Z','123123一二三壹贰叁①②③123')
<re.Match object; span=(15, 18), match='123'>

三、 Python的其他转义符支持
正则表达式支持绝大部分Python的标准转义字符,包括:\a、\b、\f、\n、\r、\t、\u、\U、\v、\x、\,其中\b 被用于表示词语的边界,在字符集合内表示退格。

老猿Python,跟老猿学Python!
博客地址:https://blog.youkuaiyun.com/LaoYuanPython

请大家多多支持,点赞、评论和加关注!谢谢!

STM32F407+LWIP实战:NETCONN接口TCP服务器避坑指南(附正点原子例程解析) 本文深入解析了基于STM32F407和LWIP协议栈构建高响应TCP服务器的实战要点。针对使用NETCONN接口时常见的连接不稳定、数据延迟及内存泄漏等问题,提供了从NETCONN运行模型、服务器实现、参数优化到内存管理的全方位避坑指南,并结合正点原子例程,给出了具体的调试技巧与解决方案。 阅读详情

相关推荐

白话详细解读(七)----- CBAM:Convolutional Block Attention Module

一、CBAM简介 论文链接:https://x.sci-hub.org.cn/scholar?hl=zh-TW&as_sdt=0%2C5&q=CBAM%3A+Convolutional+Block+Attention+Module&btnG=&oq=CB CBAM这篇论文是在2018年提出的,自提出之后,已经被引用上千次,可见其影响力。CBAM是一种专门为了卷积神经网络而设计的注意力模块,传统的卷积存在只关注局部信息,而往往忽略全局信息的弊端,以3*3卷积为例,滤波器有9个

奋斗の博客 1万+

正则表达式\W+、(\W+)、(\W)+、[\W]+、[\W+]分割时候的区别

如图,示例和打印结果, \W+:匹配一个或多个非字母进行切割,匹配到的非字母不缓存; (\W+):匹配一个或多个非字母进行切割,匹配到的非字母全部缓存; (\W)+:匹配一个或多个非字母进行切割,匹配到的非字母缓存最后一位; [\W]+:匹配一个或多个非字母进行切割,匹配到的非字母不缓存;(跟\W+一样) [\W+]:匹配一个非字母进行切割,匹配到的非字母不缓存(加号没用)。 ...

weixin_44356698的博客 2万+

用C#完成最小二乘法拟合平面方程,再计算点到面的距离

【代码】用C#完成最小二乘法拟合平面方程,再计算点到面的距离。

MechMaster 647

正则表达式总结

1.正则表达式简介: 正则表达式是一些具有特殊含义的字符组成的字符串,多用于查找替换符合规则的字符串。 2.元字符: 元字符:有特殊含义的字符 常见的元字符如下: 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始(在集合字符里[^a]表示非(不匹配)的意思 $ 匹配字符串的结束 示例: (1)\d\

m0_57026595的博客 4488

2026 最新实战教程:AI 重构开发全流程(从需求→上线→运维)

1)做什么系统2)技术栈3)功能模块4)部署要求plaintext我要做一个:待办事项(Todo)全栈应用技术栈:前端:React + TypeScript + Tailwind后端:Node.js + Express + MongoDB部署:Docker + 本地运行(后续可上云)功能:- 增删改查任务- 任务状态切换(完成/未完成)- 简单错误处理请按企业级标准生成:架构设计 + 全部代码 + 接口文档 + 启动命令。

qq_35779316的博客 1686

cellranger安装以及使用

接受cellranger count的输出数据,将同一组的不同测序样本的表达矩阵整合在一起,比如tumor组原来有4个样本,PBMC组有两个样本,现在可以使用aggr生成最后的tumor和PBMC两个矩阵,并且进行标准化去掉测序深度的影响。但是由于病毒基因组太小了,且注释结果只有CDS没有exon,所以曲线救国,将CDS整体替换为exon,也不进行过滤了,直接下一步。虽然安装完毕,但是现在要运行cellranger的话需要在终端输入cellranger的整个路径。自动执行这个命令,需要将“

m0_59974475的博客 9393

正则表达式[\w]+,\w+,[\w+] 三者区别? [],[ABC]+,[\w./-]+ 表达什么?

正则表达式[\w]+,\w+,[\w+] 三者有何区别: [\w]+和\w+没有区别,都是匹配数字和字母下划线的多个字符; [\w+]表示匹配数字、字母、下划线和加号本身字符; [] 表示数组而非排列,即不按固定次序位置排列; 在[]内的字符可以任意次序出现。 [ABC]+ 可以匹配"AAABBBCCC,BBBAAACCC,BACCBACAACBAC,...",不是一定

哈里·雪利博客 11万+

大疆OcuSync vs 传统2.4GHz:深度拆解无人机图传射频模块的硬件差异

本文深度对比了大疆OcuSync与传统2.4GHz无人机图传射频模块的硬件差异,涵盖芯片组、天线系统、PCB设计、散热方案及生产测试等核心环节。重点解析OcuSync的全定制SoC芯片、智能MIMO天线阵列及精密PCB布局如何实现革命性性能提升,为无人机图传技术发展提供专业参考。

u5v6w7的博客 806

python正则表达式里转义字符_第11.15节 Python正则表达式转义符定义的特殊序列

一、引言在前面《第11.13节 Python正则表达式的转义符”\”功能介绍》介绍了正则表达式转义符'\',只不过当时作为转义符主要是用于在正则表达式中表示元字符自身的需要进行的转义。实际上,除了元字符使用转义符外,Python还支持由'\'和一个ASCII数字或ASCII字母字符组成的特殊序列,这些特殊代表特殊的含义。 如果'\'后面跟的字符不是ASCII数字或者ASCII字母,那么正则样式将直...

weixin_39810856的博客 340

Android AVB 分析(十六)5 个例子彻底理解 FEC(Reed-Solomon) 的工作原理

关于 FEC 是如何工作的,一直是我 Android OTA 讨论群中的未解话题,大家基本上都不清楚 Android 上面的 FEC 是如何工作的,为什么在 OTA 升级的最后阶段,FEC 的编码计算会消耗大量的 IO 资源,并持续很长时间。接下来的几篇,我会从一个程序员的角度,演示基于里德所罗门编码的 FEC 到底是如何工作的。

洛奇看世界 667

YOLO26 改进 | (教师:YOLOv8L,学生:YOLO26) | 知识蒸馏 (Knowledge Distillation)

本文介绍了基于YOLO26框架的知识蒸馏实战方法,通过教师模型指导学生模型训练,在不增加推理成本的情况下提升模型精度。文章详细阐述了基于响应的知识蒸馏实现方案,通过最小化教师与学生模型预测Logits间的KL散度实现知识迁移。核心实现包括:1) 创建DistillationModel包装器类,同时运行师生模型;2) 自定义DistillationLoss,在原检测损失基础上增加KL散度损失。该方法适用于希望保持YOLO26轻量级特性同时获得接近大模型精度的场景,文中提供了完整的代码实现方案。

weixin_51988935的博客 510

第11.22节 Python 中re模块的字符串分割器:split函数

一、 引言 在《第11.2节 Python 正则表达式支持函数概览》介绍了re模块的主要函数,在《第11.3节 Python正则表达式搜索支持函数search、match、fullmatch、findall、finditer》重点介绍了几个搜索函数,后续章节将介绍re模块的其他函数,本节先介绍re.split函数的功能。 二、 语法释义 调用语法: re.split(pattern, strin...

老猿Python 2745

Python3+PCAN-USB基于PCAN-Basic二次开发实现上位机功能

一、环境搭建 1.概述 本文主要是通过Python3与CAN总线工具PCAN-USB基于官方PCAN-Basic库实现CAN总线消息读写功能。 2.PCANBasic.py和PCANBasic.dll下载地址 https://www.peak-system.com/fileadmin/media/files/pcan-basic.zip 3.Python安装 下载地址:https://www.p...

测试领域技术分享 5183

Python系列15——正则表达式

目录 一、什么是正则表达式 二、正则表达式的要素与语法 1、普通字符 2、特殊字符 (1)非打印字符 (3)重复匹配符 3、正则表达式的逻辑与分组 4、正则表达式的函数 (1)findall (2)split: (3)replace: 一、什么是正则表达式 正则表达式 (Regular Expression) 又称 RegEx, 是用来匹配字符的一种工具. 在一大串字符中寻找你需要的内容. 它常被用在很多方面, 比如网页爬虫, 文稿整理, 数据筛选等等. 最简单的一个例子, .

ilgfcyll的博客 483

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Python正则表达式\W+和\W*匹配过程的深入分析

在学习re.split函数的处理过程中,发现执行如下语句及返回与老猿预想的不一致: >>> re.split('\W*','Hello,world') ['', 'H', 'e', 'l', 'l', 'o', '', 'w', 'o', 'r', 'l', 'd', ''] 而老猿期望的是[’’, ‘Hello’, ‘’, ‘world’, ‘’],结果差异很大。 我们再看使...

老猿Python 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

第十一章 Python 支撑正则表达式处理的re模块

re模块是Python中支持正则表达式处理的模块,老猿学了之后,发现这部分内容太多,要表述清楚需要开单章才能写清楚,但老猿觉得re模块的使用对多数人来说要通过教程学习去熟练掌握很难,需要经常接触练习加上速查手册才能解决问题。而最近老猿对新知识的学习感觉很迫切,好多要学的内容,所以最终决定不在这个模块过多投入,只写几个简单章节来导入,如果大家要学习详细知识,可以在网上找相关的教程。 本章目录: 老猿...

老猿Python 1633

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

python的re的split函数_第11.22节 Python 中re模块的字符串分割器:split函数

二、语法释义调用语法:re.split(pattern, string, maxsplit=0, flags=0)参数及返回结果释义:1)这个函数的功能与字符串的split方法有些类似,只是字符串内split是固定分隔符,而这是用 正则表达式来分开 string,分开的字符存放在返回的列表元素内。2)如果在 pattern 对应正则表达式中存在元字符“()”,且能匹配到搜索文本,那么每个匹配组里的...

weixin_39631007的博客 658

python split函数分割字符串_第11.22节 Python 中re模块的字符串分割器:split函数

二、语法释义调用语法:re.split(pattern, string, maxsplit=0, flags=0)参数及返回结果释义:1)这个函数的功能与字符串的split方法有些类似,只是字符串内split是固定分隔符,而这是用 正则表达式来分开 string,分开的字符存放在返回的列表元素内。2)如果在 pattern 对应正则表达式中存在元字符“()”,且能匹配到搜索文本,那么每个匹配组里的...

weixin_39756192的博客 351

正则表达式简介及在C++11中的简单使用

正则表达式(regular expression)是计算机科学中的一个概念,又称规则表达式,通常简写为regex、regexp、RE、regexps、regexes、regexen。 正则表达式是一种文本模式。正则表达式是强大、便捷、高效的文本处理工具。正则表达式本身,加上如同一门袖珍编程语言的通用模式表示法(general pattern notation),赋予使用者描述和分析文本的能力。配合上特定工具提供的额外支持,正则表达式能够添加、删除、分离、叠加、插入和修整各种类型的文本和数据。 完整的正则

mailagan的博客 275

正则表达式

python正则表达式详解,字符详解,案例研究

weixin_67463124的博客 145

简介Python正则表达式

一、概念 简单来说正则表达式是由一些普通字符(例如,a 到 z 之间的字母)和一些元字符组成,用来匹配和过滤一些字符串的一种逻辑公式。 二、正则表达式的一些基本规则 1、一些常用的元字符 ^ :匹配行或者字符串的起始位置,有时还会匹配整个文档的起始位置。 $ :匹配行或字符串的结尾。 \d :匹配数字字符。 \D :匹配一个非数字字符。 \w :匹配字母...

weixin_30287169的博客 118

11-Python基础之模块

re模块 正则表达式: 字符组: [字符组] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 字符分为很多类,比如数字、字母、标点等等。 假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。 [A-Za-z0-9] 元字符: 元字符 匹配内容 ...

weixin_30889885的博客 91

python 正则表达式笔记1

(1) import re (2) .号(点号)表示出了换行符之外的所有字符 re.search(r'love','i love you') (3) 如果要匹配"."(点号)加上反斜杠"\",如: re.search('\.','i love you.com') <_sre.S...

121
上一篇: 第11.14节 正则表达式转义符和Python转义符相同引发问题的解决办法
下一篇: 第11.16节 Python正则元字符“()”(小括号)与组(group)匹配模式
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值