Из документации python в regex относительно символа '\'
:
Решение состоит в использовании нотной строки Pythons для регулярных шаблоны выражений; обратная косая черта не обрабатывается каким-либо особым образом в строковый литерал с префиксом
'r'
. Итак,r"\n"
- это двухсимвольная строка содержащие'\'
и'n'
, а"\n"
- односимвольная строка содержащий новую строку. Обычно шаблоны будут выражаться в Python код с использованием этой необработанной строковой нотации.
Что это за формальная строковая нотация? Если вы используете формат исходной строки, означает ли это, что "*"
берется как буквальный символ, а не индикатор нуля или более? Это, очевидно, не может быть прав, иначе регулярное выражение полностью потеряет свою силу. Но если это сырая строка, то как она распознает символы новой строки, если "\n"
буквально обратная косая черта и "n"
?
Я не следую.
Изменить для баунти:
Я пытаюсь понять, как регулярное выражение raw string соответствует символам новой строки, вкладкам и наборам символов, например. \w
для слов или \d
для цифр или всего еще чего-то, если исходные шаблоны строк не распознают обратную косую черту как нечто большее, чем обычные символы. Я действительно мог бы использовать несколько хороших примеров.