Извините, если это повторяющийся / basi c вопрос, мне не удалось найти похожие вопросы.
У меня есть следующая многострочная строка
my_txt = """
foo.exe\n
bar.exec\n
abab.exe\n
"""
(символы новой строки не на самом деле не написаны в моем коде, я поместил их туда для ясности). Я хочу сопоставить каждый файл, который заканчивается на .exe (не .exe c). Изначально мое регулярное выражение было:
my_reg = re.compile(".+[.](?=exe$)")
my_matches = my_reg.finditer(my_txt)
Я надеялся, что он сначала найдет каждый символ, go назад, пока не найдет .
, а затем проверит, следуют ли символы exe
и новая строка. Было найдено только одно совпадение: abab.exe
. Я попытался немного повозиться и изменил первую строчку: my_reg = re.compile(".+[.](?=exe$)",flags=re.MULTILINE)
. На этот раз он успешно запустился, вернув
foo.
abab.
. Я думал, что re.MULTILINE не должен мешать оператору $, или я ошибаюсь насчет оператора $ / неправильного использования чего-то? Заранее спасибо!