Введение
Вы можете создать сырую строку в Python, добавив к строковой литерале префикс r
или R
. Сырая строка в Python рассматривает символ обратного слеша (\) как символ в буквальном смысле. Сырая строка полезна, когда строка должна содержать обратный слеш, например, для регулярного выражения или пути к каталогу Windows, и вы не хотите, чтобы он рассматривался как символ экранирования. Эта статья охватывает основы работы с сырыми строками Python и предоставляет несколько общих примеров использования сырых строк для включения специальных символов в строки.
Примеры в этой статье используют интерактивную консоль Python в командной строке для демонстрации различных сценариев использования сырых строк.
Включение символа новой строки в строку с использованием сырой строки
В этом примере используется строка со значением: Привет\nПривет
. Если вы попытаетесь присвоить это значение обычной строке, то символ новой строки (\n
) создаст новую строку:
- s = 'Hi\nHello'
Вывести строку:
- print(s)
Вывод:
Hi
Hello
Результат показывает, что символ новой строки приводит к новой строке.
Чтобы включить символ новой строки в строку, добавьте префикс r
или R
к переменной строки, чтобы создать “сырую” строку:
- raw_s = r'Hi\nHello'
Выведите строку:
- print(raw_s)
Вывод:
Hi\nHello
Вывод содержит символ новой строки.
Включение двойных обратных слэшей в строку с использованием “сырой” строки
Если вы попытаетесь включить двойные обратные слэши, например, для пути хоста, в обычной строке, то первый обратный слэш не будет выведен, потому что компилятор рассматривает обратный слэш как индикатор экранирования.
Например, создайте строку, содержащую путь:
- s = '\\examplehost\digitalocean\content\'
Выведите строку:
- print(s)
Вывод:
\examplehost\digitalocean\content\
Вывод показывает, что первый обратный слэш не включен в строку.
Чтобы включить оба обратных слэша в строку, добавьте префикс r
или R
к переменной строки, чтобы создать “сырую” строку:
- s = r'\\examplehost\digitalocean\content\'
Выведите строку:
- print(s)
Вывод:
\\examplehost\digitalocean\content\
Вывод содержит оба обратных слэша.
Устранение проблем с кавычками и символами обратного слэша в необработанных строках
В необработанной строке кавычки все еще могут быть экранированы одиночным символом обратного слэша, однако символ обратного слэша остается в итоговой необработанной строке.
Кроме того, необработанная строка не может заканчиваться нечетным числом символов обратного слэша. Из-за этой особенности невозможно создать необработанную строку, содержащую одиночный символ обратного слэша, поэтому r"/"
является недопустимой строкой.
Примеры недопустимых необработанных строк
В этом примере конечная кавычка отсутствует в выводе, так как она экранируется символом обратного слэша, что приводит к ошибке недопустимый литерал строки
:
r'\'
В этом примере первые два обратных слэша будут экранировать друг друга, а третий попытается экранировать конечную кавычку, что приведет к ошибке недопустимый литерал строки
:
r'ab\\\'
Примеры допустимых необработанных строк
Вот несколько примеров допустимых строк, содержащих кавычки и обратные слэши.
Создайте сырую строку, которая экранирует кавычки:
- s = r"\"\""
Выведите строку:
- print(s)
Результат:
\"\"
Результат показывает, что обратные слэши экранируют кавычки, чтобы строка не завершалась, но обратные слэши остаются в результирующей строке.
Создайте сырую строку с четным количеством обратных слэшей:
- s = R'ab\\'
Выведите строку:
- print(s)
Результат:
ab\\
Результат показывает, что четное количество обратных слэшей включено в результирующую строку.
Заключение
В этой статье вы узнали основы сырых строк в Python. Продолжайте изучение строк Python.
Source:
https://www.digitalocean.com/community/tutorials/python-raw-string