编辑
我不确定这个问题是否被正确阅读。
我已经知道 Python 中有哪些字符串格式。
每一个小细节,我已经知道了。
请停止向我提出有关 Python 中字符串类型的问题。
这是一个特定的问题,与原始语法构造
主体中的问题字符串分隔符有关。
我想知道为什么我不能在这个
原始字符串上使用原始语法 r"" 或 r'' 形式,"word's"
并让它像这样存在于变量中。
我为什么要这样做并不重要,但我已经在下面解释了。
谢谢。
我只是介绍了一些语法规则,以
使用和的原始字符串语法规则来解析r' '
和创建字符串r" "
。
作为记录,我已经阅读了有关原始字符串的文档和规则。
该问题特定于转义原始字符串中的分隔符。
我有一个实用程序可以解析/生成其他字符串类型并用于
生产代码。
我很困惑,当字符串在变量中时,Python 不会删除转义分隔符的转义 。
这是设计使然,即。不删除分隔符上的转义符或我
希望的内容,只是解析过程中遗漏的一部分。
基本上,一个错误?
如果在解析后,字符串看起来不像原始图像,则该字符串并不是真正的原始图像。
解析后,在一个变量中,它现在变得无用了。
这是一个疏忽吗,将来可能会更正吗?
就像现在一样,在我的实用程序中,我只能创建一个原始语法形式,但由于
这个错误,我无法解析它,除非我从分隔符中移除转义符。
我的意思是,我想我可以这样做,因为它与生成字符串是直接相反的,
但令人不安的是,词法解析器在
解析过程之后将这种人为的转义留在了变量中。
这是我用来验证问题的一些代码:
代码
#python 2.7.12
print "Raw targt string test = \"word's\""
v1 = r' "word\'s" ' # => "word\'s"
v2 = r" \"word's\" " # => \"word's\"
print "using r' ' syntax, variable contains " + v1
print "using r\" \" syntax, variable contains " + v2
if len(v1) == len(v2) :
print "length's are equal"
else :
print "length's are NOT equal"
输出
Raw targt string test = "word's"
using r' ' syntax, variable contains "word\'s"
using r" " syntax, variable contains \"word's\"
length's are NOT equal
任何一个