Python中的嵌套正则表达式

时间:2014-03-02 00:35:42

标签: python regex nested

有没有办法在Python中使用嵌套正则表达式? 例如,我有

r1 = re.compile(r'SO ON')
我可以拥有像

这样的东西吗?
r2 = re.compile(r'WHATEVER AND (r1)*') 

为此示例验证“WHATEVER AND SO ON”。

我试着找到这个,但找不到任何解决方案。

2 个答案:

答案 0 :(得分:1)

r1 = re.compile(r'SO ON')
r2 = re.compile(r'WHATEVER AND (%s)*' % r1.pattern)

这实际上并没有使用正则表达式的任何特殊功能,而是使用string formatting。可以将多个字符串传递为:

r'WHATEVER AND (%s) (%s)' % (r1.pattern, 'hello')

答案 1 :(得分:0)

我觉得道义上有义务指出这是严格支持没有旗帜的regexen。一旦你开始使用像re.MULTILINE这样的标志,这种方法就不起作用了。 Perl在正则表达式中使用正则表达式很棒。我希望我能找到一个好的Python解决方案。