Как использовать сырую строку Python

Введение

Вы можете создать сырую строку в Python, добавив к строковой литерале префикс r или R. Сырая строка в Python рассматривает символ обратного слеша (\) как символ в буквальном смысле. Сырая строка полезна, когда строка должна содержать обратный слеш, например, для регулярного выражения или пути к каталогу Windows, и вы не хотите, чтобы он рассматривался как символ экранирования. Эта статья охватывает основы работы с сырыми строками Python и предоставляет несколько общих примеров использования сырых строк для включения специальных символов в строки.

Примеры в этой статье используют интерактивную консоль Python в командной строке для демонстрации различных сценариев использования сырых строк.

Включение символа новой строки в строку с использованием сырой строки

В этом примере используется строка со значением: Привет\nПривет. Если вы попытаетесь присвоить это значение обычной строке, то символ новой строки (\n) создаст новую строку:

  1. s = 'Hi\nHello'

Вывести строку:

  1. print(s)

Вывод:

Hi
Hello

Результат показывает, что символ новой строки приводит к новой строке.

Чтобы включить символ новой строки в строку, добавьте префикс r или R к переменной строки, чтобы создать “сырую” строку:

  1. raw_s = r'Hi\nHello'

Выведите строку:

  1. print(raw_s)

Вывод:

Hi\nHello

Вывод содержит символ новой строки.

Включение двойных обратных слэшей в строку с использованием “сырой” строки

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

Например, создайте строку, содержащую путь:

  1. s = '\\examplehost\digitalocean\content\'

Выведите строку:

  1. print(s)

Вывод:

\examplehost\digitalocean\content\

Вывод показывает, что первый обратный слэш не включен в строку.

Чтобы включить оба обратных слэша в строку, добавьте префикс r или R к переменной строки, чтобы создать “сырую” строку:

  1. s = r'\\examplehost\digitalocean\content\'

Выведите строку:

  1. print(s)

Вывод:

\\examplehost\digitalocean\content\

Вывод содержит оба обратных слэша.

Устранение проблем с кавычками и символами обратного слэша в необработанных строках

В необработанной строке кавычки все еще могут быть экранированы одиночным символом обратного слэша, однако символ обратного слэша остается в итоговой необработанной строке.

Кроме того, необработанная строка не может заканчиваться нечетным числом символов обратного слэша. Из-за этой особенности невозможно создать необработанную строку, содержащую одиночный символ обратного слэша, поэтому r"/" является недопустимой строкой.

Примеры недопустимых необработанных строк

В этом примере конечная кавычка отсутствует в выводе, так как она экранируется символом обратного слэша, что приводит к ошибке недопустимый литерал строки:

r'\'

В этом примере первые два обратных слэша будут экранировать друг друга, а третий попытается экранировать конечную кавычку, что приведет к ошибке недопустимый литерал строки:

r'ab\\\'

Примеры допустимых необработанных строк

Вот несколько примеров допустимых строк, содержащих кавычки и обратные слэши.

Создайте сырую строку, которая экранирует кавычки:

  1. s = r"\"\""

Выведите строку:

  1. print(s)

Результат:

\"\"

Результат показывает, что обратные слэши экранируют кавычки, чтобы строка не завершалась, но обратные слэши остаются в результирующей строке.

Создайте сырую строку с четным количеством обратных слэшей:

  1. s = R'ab\\'

Выведите строку:

  1. print(s)

Результат:

ab\\

Результат показывает, что четное количество обратных слэшей включено в результирующую строку.

Заключение

В этой статье вы узнали основы сырых строк в Python. Продолжайте изучение строк Python.

Source:
https://www.digitalocean.com/community/tutorials/python-raw-string