第11.14节 正则表达式转义符和Python转义符相同引发问题的解决办法
2023-09-27 14:26:59 时间
正则表达式使用反斜杠('\'
)来把特殊字符转义成普通字符(为了方便称为“正则表达式转义”),而反斜杠在普通的 Python 字符串里也是转义符(称为“字符串转义”),这样两者在反斜杠转义的处理上就产生了冲突。比如说,要匹配一个字符串里面的反斜杠,因为正则表达式里匹配一个反斜杠必须是\\
,而每个反斜杠在普通的 Python 字符串里都要写成\\
,最后正则表达式模式不得不写成'\\\\'
。
一个比较好的解决办法是对于正则表达式的模式使用 Python 的原始字符串表示法,由于原始字符串中所有字符直接按照字面意思来使用,不转义特殊字符,故不做“字符串转义”,直接进入“正则表达式转义”,在正则表达式转义中“\\”被转义为了“\”
,表示该正则式需要匹配一个反斜杠。从上述分析来看,原始字符串与“正则表达式转义”毫无关系,原始字符串仅在“字符串转义”中起作用,使字符串免去一次转义。因此正则表达式中使用原始字符串可以有效规避字符串转义与正则表达式转义的冲突,因此推荐就算是最简单的正则表达式,也要使用原始字符串。
案例:
>>> re.search(r'c:\\temp',r'c:\temp\test.txt',re.I)
<re.Match object; span=(0, 7), match='c:\\temp'>
>>>
老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!
相关文章
- Python中的正则表达式
- python爬虫知识点总结(九)Requests+正则表达式爬取猫眼电影
- Python正则表达式很难?一篇文章就行,不是我吹
- Python--Matplotlib库与数据可视化①--修改图像属性
- Python基础之:Python中的模块
- 【华为OD机试真题 python】任务总执行时长【2022 Q4 | 100分】
- AI视觉组仙人一步之高级玩法——从Python回归C语言
- 135 python高级 - 正则表达式(表示边界)
- 133 python高级 - 正则表达式(原始字符串)
- OSINT + Python = 自定义黑客
- gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- python读写数据篇
- 《WEB安全渗透测试》(16)利用Python编写漏洞批量检测POC
- 《像计算机科学家一样思考Python》——3.7 执行流程
- Python 正则表达式语法实例
- 【Python行业分析2】BOSS直聘招聘信息获取之爬虫工具分析
- openAI的仿真环境Gym Retro的Python API接口
- python正则表达式1
- Python人工智能概述——博弈、对抗搜索
- 【数字IC验证进阶】以一个实例,快速上手python脚本处理log的若干关键操作(#python、#正则表达式)
- Python 基础 之 正则表达式re解析匹配同时获取字符串中的 单引号‘’、双引号“”内的内容
- python碎片记录(一)
- python主成分分析
- python五十六课——正则表达式(常用函数之findall)
- python五十六课——正则表达式(常用函数之match)
- python第十四课--排序及自定义函数之自定义函数(案例二)
- Python dir( )函数
- 【python养成】:re模块正则表达式详解