Что значит предшествовать буквальным буквальным с «R»? [дублировать

StackOverflow https://stackoverflow.com/questions/4780088

Вопрос

Я впервые увидел, что он использовался для строительства регулярных выражений по нескольким линиям в качестве аргумента метода для re.compile(), поэтому я предположил, что r Стоивает за корпус.

Например:

regex = re.compile(
    r'^[A-Z]'
    r'[A-Z0-9-]'
    r'[A-Z]$', re.IGNORECASE
)

Так что же r в этом случае? Зачем нам это нужно?

Это было полезно?

Решение

А r означает, что строка должна рассматриваться как необработанная строка, что означает, что все коды побега будут игнорироваться.

Для примера:

'\n' будет рассматриваться как новый персонаж, в то время как r'\n' будут рассматриваться как персонажи \ с последующим n.

Когда 'r' или же 'R' Префикс присутствует, символ, следующий за обратной чертой, включен в строку без изменения, и все обратные сшивки остаются в строке. Например, струнный буквальный r"\n" состоит из двух персонажей: обратной склад и стропительного регистра 'n'. Анкет Строковые кавычки можно сбежать с обратной ссорой, но обратная черта остается в строке; Например, r"\"" является допустимым буквальным литералом, состоящим из двух символов: обратная хлеба и двойная цитата; r"\"не является допустимым буквальным литералом (даже необработанная строка не может заканчиваться в нечетном количестве обратных сбоев). В частности, необработанная строка не может заканчиваться на одну обратную черту (так как обратная черта избежала бы следующего символа цитаты). Также обратите внимание, что один обратный склад, за которым следует новая линия, интерпретируется как эти два символа как часть строки, а не как продолжение строки.

Источник: Python String Literals

Другие советы

Это означает, что побеги не будут переведены. Например:

r'\n'

это строка с обратной чертой, за которой следует буква n. Анкет (Без r Это будет новая линия.)

b Стоит за байт-стринг и используется в Python 3, где строки являются Unicode по умолчанию. В струнах Python 2.x были байтовые строки по умолчанию, и вы бы использовали u Чтобы указать Unicode.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top