Вече сигурно сте забелязали, че регулярните изрази имат доста стегнат запис, макар че не са чак толкова кошмарни за разгадаване. РИ със средна сложност могат да се превърнат в натрупвания от обратно наклонени черти, скоби и метасимволи, което ще ги направи трудни за четене и разбиране.
За такива РИ може да помогне указването на флага 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*$")