gpt4 book ai didi

Python 将 r 放在 unicode 字符串变量之前

转载 作者:行者123 更新时间:2023-11-28 21:51:48 24 4
gpt4 key购买 nike

对于静态字符串,将 r 放在字符串前面将给出原始字符串(例如 r'some\'string')。由于不可能将 r 放在 unicode 字符串变量的前面,将字符串变量动态转换为其原始形式的最小方法是什么?我应该用双反斜杠手动替换所有反斜杠吗?

str_var = u"some text with escapes e.g. \( \' \)"
raw_str_var = ???

最佳答案

如果你真的需要转义一个字符串,比方说你想打印一个换行符为\n,你可以使用encode特定于 Python 的方法 string_escape编码:

>>> s = "hello\nworld"
>>> e = s.encode("string_escape")
>>> e
"hello\\nworld"
>>> print s
hello
world
>>> print e
hello\nworld

您没有提及有关 unicode 或您使用的 Python 版本的任何内容,但如果您处理的是 unicode 字符串,则应改用 unicode_escape

>>> u = u"föö\nbär"
>>> print u
föö
bär
>>> print u.encode('unicode_escape')
f\xf6\xf6\nb\xe4r

您的帖子最初有正则表达式标记,可能是 re.escape是您真正要找的东西吗?

>>> re.escape(u"foo\nbar\'baz")
u"foo\\\nbar\\'baz"

不是“双重转义”,即打印上面的字符串:

foo\
bar\'baz

关于Python 将 r 放在 unicode 字符串变量之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29389757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com