正则表达式中的Python宏

正则表达式中的Python宏,python,macros,python-2.7,Python,Macros,Python 2.7,在下面的例子中,我使用了“|”条件来匹配多个搜索模式并用值替换所有搜索模式。它工作得很好。但是python有没有宏类型的东西,我可以在其中编写所有模式,并在搜索模式中调用它?并立即替换所有的图案。因为我要写20到30个搜索模式。请帮助我实现这一点 提前谢谢 import re st = '''<h5>Reglar</h5> <h5>Lateral</h5> <h5>Daily</h5> <h5>Weekly&l

在下面的例子中,我使用了
“|”
条件来匹配多个搜索模式并用值替换所有搜索模式。它工作得很好。但是python有没有宏类型的东西,我可以在其中编写所有模式,并在搜索模式中调用它?并立即替换所有的图案。因为我要写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
重新导入
圣雷格拉
侧面的
每日的
周报
月刊
四分之一
每年
每半年一次
vr=再细分(r'(?i)(横向半年度月度),“最终”,st)
打印虚拟现实

Python没有宏

我不确定是否确实理解您的目的,但是:

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

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

不知道你的意思。是否要替换搜索词列表?是否正在寻找预编译模式的方法?(重新编译)?一般来说,您可以。查看实际的HTML解析器,例如。@Mike yes,我计划替换搜索项列表。首先感谢您的回复。我想我计划替换一组具有相同值的搜索模式(在上面的示例中,我已将所有搜索模式替换为“FINAL”值)。我试着使用上面的代码,但我没有通过。
  re_pat = re.compile(re_str)