Я написал простой скрипт для сканирования каталога для типа файла (.htm), откройте их. и замените некоторый текст. Этот скрипт отлично работает на моем домашнем компьютере (Python 2.7.12), но не на моем рабочем компьютере (Python 2.7.8), и я не могу понять, почему. Он просто не находит совпадений. Файлы он смотрит на это тот же формат, кодирование и т.д.выражение regex работает в Python 2.7.12, но не Python 2.7.8
Выражение:
core = re.compile(r'(.*?)(FeatureCatalogue_Core_v??4\.\d_20[123]\d-??[01]\d-??[0123]\d)(.*?)')
"FeatureCatalogue_Core_v4.4_2016-12-31" должен соответствовать
"FeatureCatalogue_Core_4.4_20161231" должен соответствовать
«FeatureCatalogue_Core_v5.0_2017-12-31» не должен соответствовать
Я уверен, что я что-то простого или моему expre отсутствую ssion не совсем прав, но я просто не вижу этого.
Регулярное выражение хорошо. Есть что-то еще, что предотвращает правильное выполнение скрипта. Обратите внимание, что вы можете заменить все '??' на '?', А '.' после' 4' должны быть экранированы. –
Как @ WiktorStribiżew указывает, [** ваше регулярное выражение работает **] (https://regex101.com/r/6AYjjz/1) - вот [** оптимизированная версия **] (https://regex101.com/r/6AYjjz/2). – Jan