正则表达式中两个反斜杠的匹配规则详解
作者:hxli2021 发布时间:2023-10-05 17:24:37
标签:正则表达式,反斜杠
关于正则表达式raw的\匹配规则
这是我在学习中获得到的一个例子,第一表达式中匹配到的是none。于是乎我就在思考,为什么会匹配不到,假设\t被转义成一个\t,那么也应该匹配到\tsanle,而不是none。
为了验证这个问题,我做了如下的实验:
那为什么一个会出现这样的结果呢,在正则表达式中,需要查找的字符串,会进行两次转义,先是传入的字符串进行第一层转换,例如:\\t --> \t .然后传到re解析器里进行第二层转换,\t -->tab键。而需要匹配的字符串\\\t -->两个反斜杠会变成一个反斜杠(因为前面那个\会转义后面的\,所以两个\就会变成一个\)。然后就变成\\t了,然后就变成直接的一个tab键,他们就匹配上了。
当出现raw时,如下:
原来可以匹配的就变得不能匹配了,为什么呢,因为使用了raw之后原本会进行的第一层转换,就不再存在了,直接进入re解析器中进行第二层转换:
例如:\\tsanle -->只进行一次转换就变成了\tsanle.然而需要匹配的字符串还是进行之前的转换,就一个tab,他们就无法匹配上了。
以上就是我所理解的,如有疑惑,可以私信提问。这就是我所理解的正则规则
来源:https://blog.csdn.net/hxli156422/article/details/109571948


猜你喜欢
- 如下所示:from bs4 import BeautifulSouppath = './web/new_index.html'
- 一、绘制成品二、绘制代码实现本文效果的整体思路是:加载库—选择背景音乐—绘制心的外轮廓&md
- 有些接口参数是一个文件格式,比如fiddler 抓包参数如下显示这个接口的 form-data fiddler 显示的和不带文件参数的接口有
- 给定list,如何以空格/逗号等符号以分隔符输出呢?一般的,简单的for循环可以打印出list的内容:l=[1,2,3,4]for i in
- JavaScript中,可以使用delete操作符来删除对象中的property:var t = {a:42, b:26};console.
- 很多查询类的存储过程会返回一个表结构的结果集,如果在其他存储过程中需要用到这个结果集,为了避免编写重复的sql脚本,可以直接使用前者的查询结
- 如题,我有一个模板,我想根据需求复制模板中间的某一页多次,比如复制第五页,然后复制3次,那么第六页,第七页,第八页都是和第五页一模一样的pp
- 一、下载PyCharm下载最新版PyCharm,官方地址:https://www.jetbrains.com/pycharm/downloa
- tf.gather和gather_nd从params中收集数值,tf.scatter_nd 和 tf.scatter_nd_update用u
- 判断不仅包括电脑浏览器,还包括安卓、ios系统的手机以及平板电脑,游戏系统 var client = function(){ //呈现引擎
- 读文件打开文件(文件需要存在)#打开文件f = open("data.txt","r")  
- Java基础—学生信息管理系统(使用数据库),供大家参考,具体内容如下前一段时间写了学生信息管理系统(使用ArrayLi
- 最近在研究C++连接数据库的问题。安装了MySQL后,在其安装目录下的include文件夹并没有找到libmysql.lib.这个经过研究,
- 前言在AI领域,来快速实现一个idea:前后端开发+部署+展现,如果走传统的前后端分离开发+服务器docker部署等方式,会很重且入门成本很
- foreignkey是一种关联字段,将两张表进行关联的方式,我们在dodels.py里写入要生成的两张表:class Usergroup(m
- 这篇文章主要介绍了python中删除某个元素的方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- delete这个操作符呢,在javascript中不是很常用,但是他的特性的确很诡异。1,删除对象的属性,代码:var o = { 
- 1 发送文本信息'''加密发送文本邮件'''def sendEmail(from_addr,
- 该教程是面向那些不知道如何通过java连接mysql数据库的新手,所以该教程用的方法不是最优的方法,但求是最好理解的方法。需要的工具:ecl
- 如下所示:plt.title("Feature importances", fontsize=30)plt.xticks