Python:替换反斜杠以避免字符串中的转义序列

标签 python string escaping python-2.x

我试图用双反斜杠替换字符串中的单反斜杠,因为有时“反斜杠+字符”组合会创建转义序列。我尝试了各种方法(主要来自其他 stackoverflow 问题),但到目前为止,没有任何方法能让我得到正确的结果。

示例 s = "\aa, \bb, \cc, \dd"

<小时/>
string.replace(s,"\\","\\\\")

用特殊字符替换第一个 a 和 b(无法将确切的结果粘贴到此处?):

@a,@b,\\cc,\\dd
<小时/>
print s.encode("string_escape")

产生

\x07a,\x08b,\\cc,\\dd

(与“unicode-escape”相同)

<小时/>

使用这个function

escape_dict={'\a':r'\a',
           '\b':r'\b',
           '\c':r'\c',
           '\f':r'\f',
           '\n':r'\n',
           '\r':r'\r',
           '\t':r'\t',
           '\v':r'\v',
           '\'':r'\'',
           '\"':r'\"',
           '\0':r'\0',
           '\1':r'\1',
           '\2':r'\2',
           '\3':r'\3',
           '\4':r'\4',
           '\5':r'\5',
           '\6':r'\6',
           '\7':r'\7',
           '\8':r'\8',
           '\9':r'\9'}

def raw(text):
    """Returns a raw string representation of text"""
    new_string=''
    for char in text:
        try: new_string+=escape_dict[char]
        except KeyError: new_string+=char
    return new_string

产生

\7a,\bb,\cc,\dd
<小时/>

并使用这个function

import re
import codecs

ESCAPE_SEQUENCE_RE = re.compile(r'''
    ( \\U........      # 8-digit hex escapes
    | \\u....          # 4-digit hex escapes
    | \\x..            # 2-digit hex escapes
    | \\[0-7]{1,3}     # Octal escapes
    | \\N\{[^}]+\}     # Unicode characters by name
    | \\[\\'"abfnrtv]  # Single-character escapes
    )''', re.UNICODE | re.VERBOSE)

def decode_escapes(s):
    def decode_match(match):
        return codecs.decode(match.group(0), 'unicode-escape')

    return ESCAPE_SEQUENCE_RE.sub(decode_match, s)

再次返回含有特殊字符的字符串

 @a,@b,\\cc,\\dd

我需要转换的实际字符串类似于 "GroupA\Group2\Layer1"

最佳答案

总的来说,我同意克劳斯的评论。尽管这并不总是可能的。

简单的回答是,您可以这样做:r'\aa、\bb、\cc、\dd'。

我找到了更多信息here .

如果这不可能,则不太令人高兴的答案是您进行替换:

s = '\aa, \bb, \cc, \dd'
string.replace(s,"\x07","\\a")

关于Python:替换反斜杠以避免字符串中的转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35503377/

相关文章:

python - NumPy:获取 3D 数组行和的 argmax 的最快方法

string - 如何将新的字符串元素添加到字符串列表中?

python - 如何在 mako 中正确转义输出(对于 XHTML)?

c++ - c++ 中的 WinXP 控制台光标控制字符是什么?

Python Tkinter Canvas 获取线的基本方向

python - 如何在 Python 3 中使用 urllib 中的 basejoin

python - 了解 Python 类中的变量范围

php - 在 PHP 中传递特殊字符

string - 如何连接字符串?

c# - 如何将 char @"\"转换为 Escape String\by C#