正则表达式中的Python宏

时间:2013-02-14 06:58:32

标签: python macros python-2.7

在下面的例子中,我使用"|"条件匹配多个搜索模式,并用值替换所有搜索模式。它工作正常。但是python是否有任何MACRO类型的东西,我可以在其中写入所有模式并在搜索模式中调用它?并立即替换所有模式。因为我必须编写近20到30种搜索模式。请帮我实现这个。

先谢谢。

import re

st = '''<h5>Reglar</h5>
<h5>Lateral</h5>
<h5>Daily</h5>
<h5>Weekly</h5>
<h5>Monthly</h5>
<h5>Quaterly</h5>
<h5>Yearly</h5>
<h5>Halfyearly</h5>'''

vr = re.sub(r'(?i)<h5>(Lateral|Halfyearly|Monthly)</h5>', "<h5>FINAL</h5>", st)
print vr

1 个答案:

答案 0 :(得分:2)

Python没有宏。

我不确定你理解你的目的但是:

包含正则表达式的字符串可以通过编程方式构建:

frequncy_str = ('Lateral', 'Daily', 'Weekly', 'Monthly')
re_str = '(?i)<h5>(' + '|'.join(frequency_str) + ')</h5>'

为了获得更好的性能,如果要多次执行匹配,则应编译正则表达式:

  re_pat = re.compile(re_str)