6.4 Пропуснато указване на re.VERBOSE

Вече сигурно сте забелязали, че регулярните изрази имат доста стегнат запис, макар че не са чак толкова кошмарни за разгадаване. РИ със средна сложност могат да се превърнат в натрупвания от обратно наклонени черти, скоби и метасимволи, което ще ги направи трудни за четене и разбиране.

За такива РИ може да помогне указването на флага re.VERBOSE по време на компилацията на регулярния израз. Той позволява да форматирате по-ясно регулярния израз.

Флагът re.VERBOSE има няколко действия. Празното пространство в регулярния израз, което не е в рамките на символен клас, се пренебрегва. Това означава, че израз като dog | cat е еквивалентен на по-малко четимия dog|cat, но [a b] все още ще пасва със символите "a", "b", или интервал. В допълнение към това, можете да слагате и коментари вътре в един РИ; коментарите започват от символа "#" и се простират до края на реда. Това позволява РИ да се форматират по-спретнато, когато се използват със символни низове, заобиколени от тройни кавички:

pat = re.compile(r"""
 \s*                 # Пропускаме празното пространство в началото
 (?P<header>[^:]+)   # Име на заглавната част
 \s* :               # Празно пространство и двоеточие
 (?P<value>.*?)      # Стойност на заглавната част -- *? се използва
                     # за да се пропусне празното пространство в края
 \s*$                # Празно пространство до края на реда
""", re.VERBOSE)
Това е много по-четимо, околкото:

pat = re.compile(r"\s*(?P<header>[^:]+)\s*:(?P<value>.*?)\s*$")