如何在Python正则表达式中使用变量

时间:2011-09-28 09:04:53

标签: python regex

我需要在python正则表达式中使用变量

for line in re.findall('(.+)33084-2(.+)', Data):

我使用上面的代码来匹配33084-2的一行,有时这个值会发生变化所以我需要使用像

这样的变量
for line in re.findall('(.+)Var_Name(.+)', Data):

请帮助我如何在python正则表达式中使用变量

提前致谢

4 个答案:

答案 0 :(得分:10)

如果您知道变量不能包含正则表达式中具有特殊含义的任何字符,只需使用字符串连接或任何其他方法来创建字符串。

for line in re.findall('(.+)'+Var_Name+'(.+)', Data):

如果变量有可能包含特殊字符,则先将其转义:

for line in re.findall('(.+)'+re.escape(Var_Name)+'(.+)', Data):

答案 1 :(得分:9)

尝试这种简单方法:

for line in re.findall('(.+){0}(.+)'.format(Var_Name), Data):

答案 2 :(得分:3)

使用String Formatting Operations

for line in re.findall('(.+)%s(.+)' % Var_Name, Data):

答案 3 :(得分:2)

findall函数的第一个参数只是一个字符串。所以你使用字符串连接:

for line in re.findall('(.+)'+Var_Name+'(.+)', Data):