Я бился головой о клавиатуру в поисках просветления через Google и все документы Python, которые я мог достать, но не смог найти ответ на вопрос, с которым я столкнулся.
У меня есть следующее регулярное выражение, которое я запускаю для веб-сайта, но Python настаивает на установке re.DOTALL на него, хотя мой код не сообщает ему:
\d+. +(?P<season>\d+) *\- *(?P<episode>\d+).*?(?P<day>\d+)(?:\/|\s)+(?P<month>[A-Za-z]+)(?:\/|\s)+(?P<year>\d+) +(?:<a .+><img .+></a>)? ?<a .*?>(?P<name>.*?)</a>
Это создает массив сезонов / эпизодов для списков телешоу и работает нормально, за исключением epguides.com / BurnNotice (при использовании списков TVRage), из-за некоторого интервала перед символами новой строки (я полагаю, ).
Используя http://re -try.appspot.com для тестирования, я сузил проблему до использования re.DOTALL. Если я включаю его при повторной попытке, он копирует результаты, которые я получаю, когда я запускаю его автономно на моем скрипте. Если я уберу галочку с DOTALL, то получу ожидаемые результаты.
Как я могу заставить Python НЕ использовать re.DOTALL?
Скрипт работает как в Ubuntu, так и в OS X.