Use the empty string pattern as a starting point
mainInitializing Pregex() without arguments creates an empty string pattern (''). This is useful for building patterns dynamically in loops.
An empty Pregex instance has unique identity properties that allow for concise conditional pattern building:
OneOrMore(Pregex())returnsPregex()Group(Pregex())returnsPregex()Either(Pregex(), 'pattern')returns'pattern'FollowedBy('pattern', Pregex())returns'pattern'
from pregex.core.pre import Pregex
from pregex.core.groups import Capture
from pregex.core.operators import Either
from pregex.core.quantifiers import OneOrMore
# Building a pattern conditionally using the empty string pattern
# If i=11, result is 'a|b|c+'
pre = Either(
'a',
'b' if i > 5 else Pregex(),
OneOrMore('c' if i > 10 else Pregex())
) + Capture('d' if i > 15 else Pregex())