SciPost Code Repository

Skip to content
Snippets Groups Projects
regexes.py 717 B
Newer Older
__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"


from .models import Journal


REGEX_CHOICES = '|'.join([j.doi_label for j in Journal.objects.all()])


# Regex used for URLs of specific Publications and for
# doi validation during the publication process.
PUBLICATION_DOI_REGEX = r'({})'.format(REGEX_CHOICES)
PUBLICATION_DOI_REGEX += r'(\.\w+(\.[0-9]+(\.[0-9]{3,})?)?)?'
PUBLICATION_DOI_VALIDATION_REGEX = PUBLICATION_DOI_REGEX
DOI_DISPATCH_REGEX = r'(?P<journal_tag>{})'.format(REGEX_CHOICES)
DOI_DISPATCH_REGEX += r'(\.(?P<part_1>\w+)(\.(?P<part_2>[0-9]+)(\.(?P<part_3>[0-9]{3,}))?)?)?'
DOI_ISSUE_REGEX = r'(?P<doi_label>({})\.\w+(\.[0-9]+)?)'.format(REGEX_CHOICES)