我希望通过组合较小的可重用模式来创建一些python正则表达式,我希望可重用模式使用详细标志。例如,假设我有一个简单的数字模式,一个小写字符
DIGIT_PATTERN = re.compile(r"""
(?P<my_digit_pattern> # start named group
\d+ # 1 or more integers
) # close named group
""", re.VERBOSE)
CHAR_PATTERN = re.compile(r"""
(?P<my_char_pattern> # start named group
[a-z] # a character
) # close named group
""", re.VERBOSE)
有没有办法创建一个由上述模式组成的新模式?
NEW_PATTERN = CHAR_PATTERN followed by DIGIT PATTERN followed by CHAR_PATTERN
我要匹配字符串a937267t
。上面的示例经过了高度简化,但要点是如何结合使用详细标志定义的正则表达式。
这是我到目前为止所拥有的...可能是唯一的方法....
NEW_PATTERN = re.compile(
CHAR_PATTERN.pattern +
DIGIT_PATTERN.pattern +
CHAR_PATTERN.pattern,
re.VERBOSE
)
我不得不放弃命名组b / c,不能有两个命名相同的组,但是我认为这是我想要的。
答案 0 :(得分:0)
NEW_PATTERN = re.compile(r"""
(?P<my_new_pattern> # start named group
[a-z] # a character
\d+ # 1 or more integers
[a-z] # a character
) # close named group
""", re.VERBOSE)