2024-04-28 21:25:09 发布
网友
对于静态字符串,在字符串前面加一个r将得到原始字符串(例如r'some \' string')。既然不能将r放在unicode字符串变量前面,那么动态地将字符串变量转换为其原始形式的最小方法是什么?是否应该手动将所有反斜杠替换为双反斜杠?在
r
r'some \' string'
str_var = u"some text with escapes e.g. \( \' \)" raw_str_var = ???
没有什么要转换的-r前缀只在源代码表示法中有意义,对程序逻辑没有意义。在
通常,如果在普通字符串中使用一个反斜杠,如果它没有开始有效的转义序列,它将自动转换为双反斜杠:
>>> "\n \(" '\n \\('
由于可能很难记住所有有效/无效转义序列,所以引入了原始字符串表示法。但是在定义字符串之后,没有方法也没有必要转换它。在
在您的情况下,正确的方法是使用
这恰好导致了相同的字符串,但更显式。在
如果您真的需要转义一个字符串,假设您想将换行符打印为\n,那么您可以将^{}方法与特定于Python的{a2}编码一起使用:
\n
>>> s = "hello\nworld" >>> e = s.encode("string_escape") >>> e "hello\\nworld" >>> print s hello world >>> print e hello\nworld
您没有提到unicode的任何内容,或者您使用的是哪个Python版本,但是如果您处理的是unicode字符串,那么应该使用unicode_escape。在
unicode_escape
你的帖子最初有regex标签,也许^{}才是你真正想要的?在
>>> re.escape(u"foo\nbar\'baz") u"foo\\\nbar\\'baz"
不是“双转义”,即打印上述字符串会产生:
foo\ bar\'baz
没有什么要转换的-
r
前缀只在源代码表示法中有意义,对程序逻辑没有意义。在通常,如果在普通字符串中使用一个反斜杠,如果它没有开始有效的转义序列,它将自动转换为双反斜杠:
由于可能很难记住所有有效/无效转义序列,所以引入了原始字符串表示法。但是在定义字符串之后,没有方法也没有必要转换它。在
在您的情况下,正确的方法是使用
^{pr2}$这恰好导致了相同的字符串,但更显式。在
如果您真的需要转义一个字符串,假设您想将换行符打印为} 方法与特定于Python的{a2}编码一起使用:
\n
,那么您可以将^{您没有提到unicode的任何内容,或者您使用的是哪个Python版本,但是如果您处理的是unicode字符串,那么应该使用
^{pr2}$unicode_escape
。在你的帖子最初有regex标签,也许^{} 才是你真正想要的?在
不是“双转义”,即打印上述字符串会产生:
相关问题 更多 >
编程相关推荐