Комментирование регулярных выражений в python
В этом ответе на вопрос о возможности поддержки регулярных выражений упоминается способность пользователей.NET реализовывать комментарии в своих регулярных выражениях (особенно меня интересует второй пример).
Есть ли простой нативный способ воспроизвести это на python, желательно без необходимости установки сторонней библиотеки или написания собственного алгоритма комментариев?
то, что я сейчас делаю, похоже на первый пример в этом ответе, я объединяю регулярное выражение в несколько строк и комментирую каждую строку, как в следующем примере:
regexString = '(?:' # Non-capturing group matching the beginning of a comment
regexString += '/\*\*'
regexString += ')'
2 ответа
Решение
Вы ищете флаг VERBOSE в re
модуль. Пример из его документации:
a = re.compile(r"""\d + # the integral part
\. # the decimal point
\d * # some fractional digits""", re.X)
r"""
(?: # Match the regular expression below
/ # Match the character “/” literally
\* # Match the character “*” literally
\* # Match the character “*” literally
)
"""
Вы также можете добавить комментарии в регулярное выражение, как это:
(?#The following regex matches /** in a non-capture group :D)(?:/\*\*)