Разбейте ваш шаблон регулярного выражения на несколько строк, затем объедините их в одну строку с помощью "".join()
, например,
import re
pattern = "".join([
"^(sm\d{5}-[a-z]+-\d{2})", # study number
doctype, # document
"v(\d+)-(\d+)", # version number
"\.pdf$", # pdf extension
])
regex = re.compile(pattern, re.VERBOSE)
Чтобы избежать необходимости в комментариях, вы можете использовать описательные имена переменных для каждого разделарегулярного выраженияДелая это таким образом, также может иметь смысл отделить символы позиционирования строки от «бизнес-логики» вашего регулярного выражения, чтобы сделать эти переменные более пригодными для повторного использования.
study_number_pattern = "(sm\d{5}-[a-z]+-\d{2})"
version_number_pattern = "v(\d+)-(\d+)"
pdf_extension_pattern = "\.pdf"
pattern = "".join([
"^",
study_number_pattern,
doctype,
version_number_pattern,
pdf_extension_pattern,
"$"
])
regex = re.compile(pattern, re.VERBOSE)