我需要在python正则表达式中使用变量
for line in re.findall('(.+)33084-2(.+)', Data):
我使用上面的代码来匹配33084-2的一行,有时这个值会发生变化所以我需要使用像
这样的变量for line in re.findall('(.+)Var_Name(.+)', Data):
请帮助我如何在python正则表达式中使用变量
提前致谢
答案 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):