Python: 正则表达式匹配反斜杠 "\"

Python正则表达式匹配反斜杠 "\"

eg:

>>>a=‘w\w\w‘

‘w\\w\\w‘  #  打印出来的 "\\" 被转义成 一个反斜杠 "\"

如果需要匹配字符串a,需要匹配一个反斜杠 "\"

>>>re.split(r‘\\‘,a)

[‘w‘,‘w‘,‘w‘,]

先对字符串转义,再进行正则表达式转义

由于原始字符串中所有字符直接按照字面意思来使用,不转义特殊字符,故不做字符串转义,直接进入第二部‘正则转义’,在正则转义中"\\" 被转义成了"\",表示该正在式需要匹配一个反斜杠

如有不恰当的地方,还望包容和指出,感谢。

参考自http://blog.csdn.net/jinixin/article/details/56705284

原文地址:https://www.cnblogs.com/baxianhua/p/8318318.html

时间: 2024-10-13 06:40:18

Python: 正则表达式匹配反斜杠 "\"的相关文章

python 正则表达式中反斜杠(\)的麻烦和陷阱

这里是一点小心得:由于下面两个原因,在正则表达式中使用反斜杠就会产生了一个双重转换的问题.(1).python自身处理字符串时,反斜杠是用于转义字符 (2).正则表达式也使用反斜杠来转义字符     要匹配字符串中1个反斜杠应该怎么写正则表达式?"\\",这样行吗?试试就知道了,re模块抛异常了,因为在正则表达式中,"\\"就是一个反斜杠,对于正则表达式解析器来说,是一个转义字符,但是后面啥也没有,自然就报错了,"\\\"三个肯定是不行的,试试四

python 正则表达式中反斜杠(\)的麻烦和陷阱 (转)

这里是一点小心得:由于下面两个原因,在正则表达式中使用反斜杠就会产生了一个双重转换的问题.(1).python自身处理字符串时,反斜杠是用于转义字符 (2).正则表达式也使用反斜杠来转义字符     要匹配字符串中1个反斜杠应该怎么写正则表达式?"\\",这样行吗?试试就知道了,re模块抛异常了,因为在正则表达式中,"\\"就是一个反斜杠,对于正则表达式解析器来说,是一个转义字符,但是后面啥也没有,自然就报错了,"\\\"三个肯定是不行的,试试四

正则表达式匹配反斜杠——匹配一个反斜杠要用四个反斜杠

正则表达式中匹配一个反斜杠要用四个反斜杠,为什么呢? 分析一下"\\\\",第一个斜杠是转义符,第二个斜杠是斜杠本身,第三个斜杠是转义符,第四个斜杠是斜杠本身. 有2点要清楚: 1.字符串里面表示斜杠就需要两个斜杠如"\\" 2.正则表达式里的斜杠需要转意,是用"\\"标示. 这样就比较好解释: 我们先要表示正则表达式里面的斜杠"\\",然后再用字符串表示出来.而这2个斜杠分别需要一个转义符,这样就成了4个斜杠在正则表达式里面

关于Python中正则表达式的反斜杠问题

之前总是搞不明白正则表达式中的反斜杠的问题.今天经过查阅资料终于搞明白了. 其中最重要的一点就是Python自己的字符串中定义的反斜杠也是转义字符,而正则表达式中的反斜杠也是转义字符,所以正则表达式中反斜杠会涉及到双重转换的问题. 要匹配字符串中1个反斜杠应该怎么写正则表达式?"\\",这样行吗?试试就知道了,re模块抛异常了,因为"\\"就是一个反斜杠,对于正则表达式解析器来说,是一个转义字符,但是后面啥也没有,自然就报错了,"\\\"三个肯定

python 中的反斜杠匹配的问题

关于反斜杠的匹配问题可以参考: https://www.cnblogs.com/mzc1997/p/7689235.html 文章中提出了两个概念: 字符串转义和正则转义,我觉得是理解反斜杠的关键所在 1. 字符串转义 在一个字符串中 因为有\n\t 等特殊含义的字符存在,所以字符“\” 是转义字符(字符串转义),如果要取消其转义属性有两种方式: 1)再加一个转义字符:'\\'2)使用原始字符串:r'\' 2. 正则转义 正则表达式中,因为有\d,\s 等表示特殊意义的字符存在,所以正则表达式中

python中的反斜杠问题

python本身使用 \ 来转义一些特殊字符,比如在字符串中加入引号的时候 s = 'i\'m superman' print(s) # i'm superman 为了防止和字符串本身的引号冲突,使用 \ 来转义,一般情况下这个也不会引起什么问题,但是当你要使用 \ 来转义 \ 的时候,就比较混乱了,比如我们想要输出一个 \ ,得写两个 \ ,否则会报语法错误,因为 \ 把后面的引号给转义了,必须使用 \ # 错误写法 # print '\' # 正确写法 print('\\') # \ # 原

AS3中正则表达式对反斜杠的替换

一个有趣的小问题,下面的正则表达式能替换成功么? var __str:String = \'12346789\'; trace(__str.replace(/\\/g, \'5\')); 答案是:不能.trace出来的结果为: [trace] 12346789 其实正则本身并没有写错,错在被替换的字符串.反斜杠“”在AS3中是转义符,会将其后的任何值转换为本身,因此看到的字符串其实本身就是12346789,也就是没有反斜杠,当然无法搜索到. 直接trace(__str),结果和上面的trace相

python IDLE中反斜杠显示为人民币符号¥

Python自带的IDE是IDLE,最简单不过,但是全国二级要求使用该IDE. 该IDE相对于其他更高级的IDE,例如PyCharm和Visual Studio Code等,功能明确弱得很.但是,就应对二级Python考试来说已经绰绰有余. 问题 在其内置的命令行环境下现遇到一个小问题是:反斜杠显示为人民币符号¥,无论当前输入法是中文还是英文输入法.参考下图: 分析与解决办法 经过试验发现,可以通过菜单命令"Options"-"Configure IDLE",把当前

正则表达式 反斜杠的匹配 2018-11-30

问题引入: 在学习正则表达式的过程中,遇到了一直无法正确匹配反斜杠\,初始使用的是下面两种方法: 使用普通字符串,匹配一个反斜杠,需要再用一个反斜杠来转义:\\ 使用带r的原始字符串,这样就不用再转义:r'\' 使用上面两种方法一直无法匹配 4\5 中的反斜杠,最终经过查询,发现自己理解错误,字符串存在转义,正则也存在转义 1. 字符串转义: 在字符串中,我们会用一反斜杠加特定的字符来表达一些特定的功能,比如,\n表示换行,\"表示双引号等等,而如果要输出反斜杠本身,则用\\如下所示: >