Stores regular expressions in Django models.
The Django regex field app provides a custom field for a Django model that stores a regex. This provides the ability to easily store regexs and access them as compiled regular expressions from your models.
A regular expression can be stored and retrieved in a Django model as follows:
from django.db import models
from regex_field.fields import RegexField
class RegexModel(models.Model):
regex = RegexField(max_length=128)
model_obj = RegexModel.objects.create(regex='a')
# Access the regex as a compiled regular expression
>>> print(model_obj.regex.match('b'))
None
Flags can be provided in the field definition and will be applied when the regex is compiled. If you manually compile a regex object with other flags and set it on the model, those flags will not be preserved. Only the flags passed to the field's constructor are used.
import re
from django.db import models
from regex_field.fields import RegexField
class RegexModel(models.Model):
regex = RegexField(max_length=128, re_flags=re.IGNORECASE)
model_obj = RegexModel.objects.create(regex='A')
# Case insensitive matching
>>> print(model_obj.regex.match('a') is not None)
True