Как добавить "\" к началу строки в Python - PullRequest
0 голосов
/ 30 августа 2018

Как добавить символ \ в начало строки в Python, выдает ошибку, говорящую

SyntaxError: EOL при сканировании строкового литерала

Мне нужно добавить \ всякий раз, когда в строке видно подчеркивание

например:

__x_a & rarr; \_\_x_a это нужно сделать только для начальных подчеркиваний

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Вы можете использовать re.sub

>>> import re
>>> s = "__x_a" 
>>> new_s = re.sub(r'^_*', lambda x: x.group().replace('_', '\_'), s)
>>> print(new_s)
\_\_x_a
0 голосов
/ 30 августа 2018

Единственная обратная косая черта в Python записывается так:

"\\"

Различные способы убедить себя в этом:

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

Странность в том, что, поскольку обратный слеш является символом escape, сам обратный слеш должен быть экранирован.

Итак, чтобы ответить на вопрос в заголовке:

Как добавить «\» в начало строки в 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
...