我想要实现的是用变量(变量的内容)用python正则表达式替换字符串。由于我需要保留一些匹配的表达式,因此我使用\1
和\3
组匹配参数。python正则表达式使用变量代表表达式
我的正则表达式/子看起来是这样的:
pattern = "\1" + id + "\3" \b
out = re.sub(r'(;11=)(\w+)(;)',r'%s' % pattern, line)
这似乎是发生的是\1
和\3
没有得到添加到输出。
我也用替换表达式尝试这样做:
r'\1%s\3'%orderid
但我得到了类似的结果。 任何可能解决此问题的建议?
为什么你甚至需要将这些匹配存储在'\ 1'和'\ 3'中?它们始终是相同的值,只是把它们作为字符串。 're.sub(r'(; 11 =)(\ w +)(;)',“; 11 =”+ id +“;”,line)',或者完全移除捕获:'re.sub(r' ; 11 = \ w +;',“; 11 =”+ id +“;”,line)'(并且您似乎并没有使用'\ w +')。 – Jerry
我尝试了其他的,但这是最终对我的工作。谢谢杰里。我不相信我没有看到。 – Pradyot