Комментирование регулярных выражений в 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)(?:/\*\*)

Другие вопросы по тегам