【问题标题】:How to append "\" to the start of the string in python如何在python中将“\”附加到字符串的开头
【发布时间】:2018-08-29 21:16:33
【问题描述】:

如何在python中将\字符附加到字符串的开头,它会抛出一个错误提示

语法错误:扫描字符串时 EOL

每当在字符串中看到下划线时,我需要附加\

例如:

__x_a\_\_x_a 这只需要对初始下划线进行

【问题讨论】:

  • 您尝试过的代码是什么并给了您错误?
  • 下划线通常不需要转义。在什么情况下你需要逃避它们?
  • 我正在将其转换为乳胶,因此需要更换

标签: python string-literals


【解决方案1】:

您可以使用re.sub

>>> import re
>>> s = "__x_a" 
>>> new_s = re.sub(r'^_*', lambda x: x.group().replace('_', '\_'), s)
>>> print(new_s)
\_\_x_a

【讨论】:

  • @wim。在 python 2.7 和 3.7 上都可以正常工作。您到底看到了什么警告以及您使用的是什么 python 版本?
  • 3.7.0 最终版。您可能已关闭警告。
【解决方案2】:

Python 中的单个反斜杠是这样写的:

"\\"

说服自己的各种方法:

>>> len("\\")
1
>>> print("\\")
\
>>> "\\\\\\\\\\\\\\\\\\"[0]
'\\'
>>> chr(92)
'\\'
>>> '\N{REVERSE SOLIDUS}'
'\\'

奇怪的是,因为反斜杠转义字符,反斜杠本身必须转义。

所以,回答标题中的问题:

如何在python中将“\”附加到字符串的开头

你可以使用:

mystring = "\\" + mystring

在您的示例情况下,它只转义前导下划线,请尝试以下操作:

>>> mystring = '__x_a'
>>> n = next((i for i,c in enumerate(mystring) if c != '_'), len(mystring))
>>> result = mystring.replace('_', r'\_', n)
>>> print(result)
\_\_x_a

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多