Регулярные выражения иногда могут быть просто монструозными. Выглядеть это может крайне запутанно. Сами регэкспы и без того история непростая, а когда это длинный паттерн на несколько десятков знаков, разобрать там что-либо становится не просто.
Но на помощь приходит Python и его стремление сделать нашу жизнь проще!
В функциях регулярок можно после паттерна указывать флаги, один из которых позволяет писать паттерны более свободно. А именно, добавлять пробелы и переносы, которые будут игнорированы. В результате мы можем разбить паттерн на строки и добавить комментов.
Чтобы это сработало нужно добавить флаг re.VERBOSE. Пробелы в паттерне теперь следует указывать явно спец символами.
Согласитесь, что даже с именованными группами а таком виде регэкспа выглядит вполне сносно 😉.
#tricks#regex
Introducing my new project: i18n fails
A collection of poorly carried out #internationalization ( #i18n ), #localization ( #l10n ), and #translation of software user interfaces.
https://i18nfails.1a23.studio/
https://docs.python.org/3/library/gettext.html
The #gettext module provides internationalization (#I18N) and localization (#L10N) services for your #Python modules and applications. It supports both the #GNU gettext message catalog #API and a higher level, class-based API that may be more appropriate for Python files. The interface described below allows you to write your module and application messages in one natural #language, and provide a catalog of #translated messages for running under different natural languages.
Some hints on localizing your Python modules and applications are also given.