Поиск по сайту:

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


Введение

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

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

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

В этом примере используется строка со значением: Hi\nHello. Если вы попытаетесь присвоить это значение обычной строке, то символ новой строки (\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.