python中的反斜杠问题深入讲解
前言
python本身使用 \ 来转义一些特殊字符,比如在字符串中加入引号的时候
s = 'i\'m superman' print(s) # i'm superman
为了防止和字符串本身的引号冲突,使用 \ 来转义,一般情况下这个也不会引起什么问题,但是当你要使用 \ 来转义 \ 的时候,就比较混乱了,比如我们想要输出一个 \ ,得写两个 \ ,否则会报语法错误,因为 \ 把后面的引号给转义了,必须使用 \
# 错误写法 # print '\' # 正确写法 print('\\') # \ # 原生字符串 print(r'\\') # \\
将 \ 转义一下使其不具备转义功能,才可以正确输出,当使用原生字符串的时候,输出显示了两个 \ ,看起来好像是写几个输出几个的样子,如果这样想的话,你可以试一下,看能不能输出奇数个 \。
补充——————————————————
python的原生字符串不能以反斜杠结尾的问题
Python的原生字符串(raw string)是个很有用的东西,可以少写很多反斜线(转义符号)。
不过它有个著名的bug,就是不能以反斜线结尾,这让人很无语。今天突然发现General Python FAQ里有进行说明,并给出了解决办法。
首先要澄清的是不是不能以反斜线结尾,而是不能以奇数个反斜线结尾。
其次,这个bug的原因是一些处理器(例如主要的正则表达式引擎)希望进行它们自己的反斜线转义处理,而这些处理器不允许字符串以未匹配的反斜线结尾。
最后,解决办法就是把反斜线放在另一个字符串里,Python会自动进行合并:
dir = r"\this\is\my\dos\dir" "\\"
补充结束——————————————————
虽然原生字符串不是很完美,但是它已经可以帮我们解决很大一部分的问题了。比如当你想匹配"\"的时候,原生字符串可以让你至少少写一半的\,即节省代码量,又增加了可读性。
import re _string = '\\\\' print(_string) # \\ # 字符串 for i in re.findall('\\\\', _string): print(i) # \ # \ # 原生字符串 for i in re.findall(r'\\', _string): print(i) # \ # \
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。
相关推荐
-
解决Python正则表达式匹配反斜杠''\''问题
在学习Python正则式的过程中,有一个问题一直困扰我,如何去匹配一个反斜杠(即"\")? 一.引入 在学习了Python特殊字符和原始字符串之后,我觉得答案应该是这样的: 1)普通字符串:'\\' 2)原始字符串:r'\' 但事实上在提取诸如"3\8"反斜杠之前的数字时,我屡次碰壁,始终得不到结果.最终发现自己理解错了,原来原始字符串和"正则转义"没有一点关系:下面详细谈一谈. 二.字符串转义 反斜杠,在Python中比较特殊,就是它可以用来构
-
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Windows (一)目录中的斜杠们 python读文件需要输入的目录参数,列出以下例子: path = r"C:\Windows\temp\readme.txt" path1 = r"c:\windows\temp\readme.txt" path2 = "c:
-
详解Python中的正斜杠与反斜杠
首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Windows (一)目录中的斜杠们 python读文件需要输入的目录参数,列出以下例子: path = r"C:\Windows\temp\readme.txt" path1 = r"c:\windows\temp\readme.txt" path2 = "c:
-
Python3.6-MySql中插入文件路径,丢失反斜杠的解决方法
如下所示: 如上图,replace即可. 以上这篇Python3.6-MySql中插入文件路径,丢失反斜杠的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
python 正则表达式 反斜杠(/)的麻烦和陷阱
要匹配字符串中1个反斜杠应该怎么写正则表达式?"\\",这样行吗?试试就知道了,re模块抛异常了,因为"\\"就是一个反斜杠,对于正则表达式解析器来说,是一个转义字符,但是后面啥也没有,自然就报错了,"\\\"三个肯定是不行的,试试四个"\\\\",完美匹配. 复制代码 代码如下: import re re_str_patt = "\\\\" reObj = re.compile(re_str_patt)
-
python中的反斜杠问题深入讲解
前言 python本身使用 \ 来转义一些特殊字符,比如在字符串中加入引号的时候 s = 'i\'m superman' print(s) # i'm superman 为了防止和字符串本身的引号冲突,使用 \ 来转义,一般情况下这个也不会引起什么问题,但是当你要使用 \ 来转义 \ 的时候,就比较混乱了,比如我们想要输出一个 \ ,得写两个 \ ,否则会报语法错误,因为 \ 把后面的引号给转义了,必须使用 \ # 错误写法 # print '\' # 正确写法 print('\\') # \
-
python中的正斜杠与反斜杠实例验证
目录 一.历史渊源 二.实例验证 三.总结 扩展:Python 基础篇-正斜杠("/")和反斜杠("\")的用法 一.历史渊源 UNIX操作系统:设计了使用 ‘/’ 的路径分割法 DOS系统:借鉴了UNIX的目录结构,但由于在DOS系统中,斜杠 ‘/’ 已经用来作为命令行参数的标志,因此只能使用反斜杠 ‘\’ Windows系统:很多时候已经没有命令行参数的干扰,因此正斜杠与反斜杠大多数情况下可以互换 二.实例验证 桌面新建临时Excel文件——test.xlsx,
-
python如何输出反斜杠
python本身使用 \ 来转义一些特殊字符,比如在字符串中加入引号的时候 s = 'i\'m superman' print(s) # i'm superman 为了防止和字符串本身的引号冲突,使用 \ 来转义,一般情况下这个也不会引起什么问题,但是当你要使用 \ 来转义 \ 的时候,就比较混乱了,比如我们想要输出一个 \ ,得写两个 \ ,否则会报语法错误,因为 \ 把后面的引号给转义了,必须使用 \. # 错误写法 # print '\' # 正确写法 print('\\') # \ #
-
python正则表达式 匹配反斜杠的操作方法
python正则表达式 匹配反斜杠 正则 需要把原始字符串不被转义的条件下传递给正则模块,正则再去转义. r表示r后面的字符串为原始字符串,防止计算机将 \ 理解为转义字符. r'^\\$' 首先按照原始字符串给到compile函数 ,正则再把r'^\\$'中的\`翻译成\ backslash='\\' print(backslash) regular_backslash=re.compile(r'^\\$') print(regular_backslash.search(regular_bac
-
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
通过AJAX传到PHP的json字符串有时候加上反斜杠"\"来转义,PHP处理时需要先去掉反斜杠,然后再json_decode. $str = stripslashes($_POST['json']); $arr = json_decode($str,true); PS:php get抓取json怎样去除双引号前面的反斜杠 你这个不算标准的JSON格式数据,可以先将\"替换成"即可. 再用json_decode()系统函数将其转为json对象,如需转为数组加上第二个
-
老生常谈java路径中的反斜杠和斜杠的区别
JAVA中的斜杠 有正斜杠与反斜杠之分,正斜杠,一般就叫做斜杠,符号为"/":反斜杠的符号为"\". 斜杠(/)在JAVA中没有什么特别的意义,就是代表一个字符'/'; 反斜杠(\)则不然,它和紧跟着它的那个字符构成转义字符,如"\n"(换行)."\""(字符'"')等,所以在字符串中要表示字符'\'要用"\\"来表示,例:如果你这样定义一个字符串String s = "nam
-
C#去除字符串中的反斜杠实例(推荐)
如下,可以使用C#的Replace()方法来替换,但有一点需要注意的是backslash(反斜杠)是特殊字符. string s = "[\"aaaaaaaaaaaaaaaaaaaaaa\"]"; string ss = s.Replace("\\",""); Response.Write(ss); 以上这篇C#去除字符串中的反斜杠实例(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
php去掉json反斜杠的实例讲解
1.通过"stripslashes($_POST['json']);"方法删除反斜杠. 2.通过"json_decode"对JSON格式的字符串进行解码即可. 通过AJAX传到PHP的json字符串有时候加上反斜杠"\"来转义,PHP处理时需要先去掉反斜杠,然后再json_decode. $str = stripslashes($_POST['json']);$arr = json_decode($str,true); stripslashes(
随机推荐
- jquery ajax中使用jsonp的限制解决方法
- Sql Server 2012 转换函数的比较(Cast、Convert和Parse)
- Mongodb中MapReduce实现数据聚合方法详解
- jQuery实现的数值范围range2dslider选取插件特效多款代码分享
- 最新版利用CDO.Message做的vbs下载者
- javascript算法之二叉搜索树的示例代码
- PHP MPDF中文乱码的解决方式
- 编写网页木马详解
- MySQL Slave 触发 oom-killer解决方法
- Ajax简单的异步交互及Ajax原生编写
- Linux给普通用户加超级用户权限的方法
- MVC遇上bootstrap后的ajax表单验证
- PHP运行环境配置与开发环境的配置(图文教程)
- jquery向上向下取整适合分页查询
- lua脚本语言快速入门教程
- 详谈javascript异步编程
- 在HTML中插入JavaScript代码的示例
- iframe实用操作锦集
- jQuery焦点图切换特效插件封装实例
- javascript异步编程