知行编程网知行编程网  2022-09-05 19:30 知行编程网 隐藏边栏  57 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python反斜杠怎么不转义的相关知识,包括python中的反斜杠是什么意思,以及js防止字符串转义这些编程知识,希望对大家有参考作用。

如何逃避python反斜杠

Python 本身使用 \ 来转义一些特殊字符,例如在字符串中添加引号时

s = 'i\'m superman'
print(s)    # i'm superman

为了防止和字符串本身的引号冲突,使用\转义,一般这样不会造成任何问题,但是当你想用\转义\时,就比较混乱了,比如我们要输出对于一个\,必须写两个\,否则会报语法错误,因为\转义了后面的引号,所以必须使用\。

# 错误写法
# print '\'

# 正确写法
print('\\')     # \

# 原生字符串
print(r'\\')    # \\

转义 \ 使其不具有转义功能以正确输出。使用原生字符串时,输出显示两个\,好像写了几个输出,如果你这么认为,可以试试看能不能输出奇数个\。

python的原生字符串不能以反斜杠结尾的问题

Python 的原始字符串是一个非常有用的东西,可以写很多反斜杠(转义符号)。

但是它有个著名的bug就是不能以反斜杠结尾,让人无语。首先要澄清的不是它不能以反斜杠结尾,而是不能以奇数个反斜杠结尾。

其次,这个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)    
    # \
    # \

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享