Рубрики
Без рубрики

Как избежать специальных символов строки Python с одной обратной ячейкой?

Символ Escape Backshallash ‘\’ – это специальный символ Python String, который обычно сопровождается буквенным характером. Например, табличное пробеловающее пространство ‘\ T’ и Newline ‘\ N’. В регулярных выражениях вы можете использовать один выход для удаления специального значения символов Regex. Например, чтобы соответствовать точкам или звездочковым символам ». … Как избежать специальных символов строки Python с одной обратной ячейкой? Подробнее “

Автор оригинала: Chris.

Обратная косание побег персонаж '\' это специальный символ Python String, который обычно сопровождается буквенным характером. Например, табличное пробеловое пространство '\ T' и новая линия '\ N' Отказ В регулярных выражениях вы можете использовать один выход для удаления специального значения символов Regex. Например, чтобы соответствовать точечным или звездочным символам '.' и '*' , вы должны сначала избавиться от специальных значений Regex Dot Отказ или Regex Asterisk * Операторы, убегая их с \. или \ * Отказ

Постановка проблемы

Сказать, вы хотите избежать персонажей -]\^$*. с одной обратной ячейкой \ .

Например, строка «Привет - [мир] - $ 100 ' должны быть преобразованы в:

'hello\-\[world\]\-\$100'

Как сделать это в Python?

Метод: re.escape ()

Самый простой способ избежать специального характера Regex с Re.escape () Функция убегает всех специальных персонажей Regeex с двойной задней ячейкой, такая как звездочка , точка , Квадратный кронштейн операторы.

>>> import re
>>> re.escape('hello-[world]-$100')
'hello\\-\\[world\\]\\-\\$100'

Если вам действительно нужно сбежать с одной обратной ячейкой, а не двойной обратной косой черты, вы можете сделать следующий метод.

Фон Regex Escape.

Метод: таблица Translate String

str.translate (таблица) Метод Возвращает переведенную строку, которая является копией исходной строки, тогда как только перевод символов, определенные в аргументе таблицы, были применены к строке. Предполагается, что таблица является объектом, который реализует __getitem __ () Dunder Method – в нашем случае, полученном с str.maketrans () функция. В большинстве случаев словарь является идеальной структурой данных для этого, потому что она позволяет набрать один символ другому – интуитивно, что вы хотите сделать при переводе строки в другую.

s = 'hello-[world]-$100'
table = str.maketrans({"-":  r"\-", "]":  r"\]", "\\": r"\\",
                       "^":  r"\^", "$":  r"\$", "*":  r"\*", ".":  r"\."})

# Replace string
s_new = s.translate(table)
print(s_new)
# hello\-[world\]\-\$100

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/how-to-escape-special-characters-of-a-python-string-with-a-single-backslash/”