Когда присутствует префикс 'r' или 'R', символ, следующий за обратной косой чертой sh, включается в строку без изменений, и все обратные косые черты остаются в строке. Например, строковый литерал r"\n"
состоит из двух символов: обратная косая черта sh и строчная буква 'n'. Строковые кавычки можно экранировать с помощью обратного слэ sh, но обратный слэс sh остается в строке; например, r"\""
является допустимым строковым литералом, состоящим из двух символов: обратная косая черта sh и двойная кавычка; r"\"
не является допустимым строковым литералом (даже необработанная строка не может заканчиваться нечетным числом обратных косых черт). В частности, необработанная строка не может заканчиваться одним обратным символом sh (поскольку обратный символ sh будет экранировать следующий символ кавычки). Также обратите внимание, что одиночная обратная косая черта sh, за которой следует символ новой строки, интерпретируется как эти два символа как часть строки, а не как продолжение строки.
Источник: Python строковые литералы
Это смутило меня, потому что префикс r
, похоже, работает только на n
, как указано в примере.
Код, который меня смутил:
import re
str= "One one two three"
result=re.findall(r'o\w\w',str)
print(result)
Не означает ли наличие префикса r
в начале регулярного выражения, что обратные косые черты не выходят за пределы буквы w
, придавая ей особое значение (т.е. символ alphanumeri c)? результат: ['one']