Нужна помощь в исправлении шаблона регулярного выражения для поиска строк, которые содержат недопустимую 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
Если кто-нибудь сможет мне в этом помочь, буду благодарен.

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

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