Pythonic way to concatenate regex objects

I don't think you will find a solution that doesn't involve creating a list with the regex objects first. I would do it this way:

# create patterns here...
re_first = re.compile(...)
re_second = re.compile(...)
re_third = re.compile(...)

# create a list with them
regexes = [re_first, re_second, re_third]

# create the combined one
pattern_combined = '|'.join(x.pattern for x in regexes)

Of course, you can also do the opposite: Combine the patterns and then compile, like this:

pattern1 = r'pattern-1'
pattern2 = r'pattern-2'
pattern3 = r'pattern-3'

patterns = [pattern1, pattern2, pattern3]

compiled_combined = re.compile('|'.join(x for x in patterns), FLAGS_TO_USE)

Toss them on a list, and then

'|'.join(your_list)

Tags:

Python

Regex