Нужна помощь в исправлении шаблона регулярного выражения для поиска строк, которые содержат недопустимую escape-последовPython

Программы на Python
Anonymous
Нужна помощь в исправлении шаблона регулярного выражения для поиска строк, которые содержат недопустимую escape-последов

Сообщение Anonymous »

Я пытаюсь придумать шаблон регулярного выражения, который мог бы перебирать все содержимое файлов и проверять наличие строк, помеченных Flake8 как W605, что означает, что они содержат недопустимую escape-последовательность.
Итак, по сути, я пытаюсь найти эти строки и преобразовать их в необработанные строки, добавляя r в начале этих строк.
Теперь я придумал вот такой базовый шаблон:

Код: Выделить всё

(?
[code]test1 = re.compile('^(.*?)\test1?$', re.S)   # matches correctly

test2 = re.compile(r'^(.*?)\test2?$', re.S)  # not matches, which is correct behaviour as it is defined as a raw string

test3 = re.compile("^(.*?)\test3?$", re.S)   # matches correctly

test4 = re.compile(r"^(.*?)\test4?$", re.S)  # not matches, which is correct behaviour as it is defined as a raw string
Но он также соответствует приведенной ниже строке, и в этом проблема:

Код: Выделить всё

test5.setdefault('test5', re.search('^(.*?)\test5?$', '').groups()[0])
В идеале он не должен соответствовать «test5», но он тоже выбирает его. Вот все совпадение, которое мы получаем: 'test5', re.search('^(.*?)\test5?$'.
Итак, вот здесь я я не могу понять, как сопоставить только строки VALID.
Это регулярное выражение 101: https://regex101.com/r/no99Sl/1< /p>
Если кто-нибудь сможет мне в этом помочь, буду благодарен.

Подробнее здесь: https://stackoverflow.com/questions/790 ... lid-escape

Вернуться в «Python»