Python:用正则表达式替换字符串

Python:用正则表达式替换字符串,python,Python,我是python新手&我想执行以下操作 我有一堆文本文件,上面有这样的语句 插入动态变量 //注意,动态变量是我想要使用的动态单词,就像在替换语句中一样 我想用以下语句替换上述语句 Util.insert(动态变量) 在python中实现这一点的最佳方法是什么?我正在浏览REGEX和backreference文档,但一些具体的指导会有所帮助 所以,我正在尝试这种方法 import re input = "insert account;" result = re.sub(r'((?:insert)

我是python新手&我想执行以下操作

我有一堆文本文件,上面有这样的语句

插入动态变量
//注意,动态变量是我想要使用的动态单词,就像在替换语句中一样

我想用以下语句替换上述语句

Util.insert(动态变量)

在python中实现这一点的最佳方法是什么?我正在浏览REGEX和backreference文档,但一些具体的指导会有所帮助

所以,我正在尝试这种方法

import re
input = "insert account;"
result = re.sub(r'((?:insert))(\w+);', r'Util.insert(\2);', )
结果字符串应该是Util.insert(account

结果字符串应该是Util.insert(contact

(问题已编辑,所以第一个解释没有意义…,但现在它不起作用,因为正则表达式中缺少空格字符…加上非捕获组不是您需要的,您需要使用
insert
替换为
Util.insert

好的,只需创建一个捕获组:变量名

工作正则表达式&示例:

import re

s = "insert variable;"
print(re.sub("^insert\s+(\w+)",r"Util.insert(\1)",s))
印刷品:

Util.insert(variable);
(\w+)
匹配任何字母、数字和下划线,这些可能包括您可以定义的变量。

请尝试以下操作:-

import re

doc='''insert dynamic-variable;
insert dynamic-variable;
insert dynamic;
insert variable;
some more line
insert dynamic-variable;'''

print re.sub(r'insert\s([\w-]*)', r'Util.insert(\1);', doc)
输出:-

Util.insert(dynamic-variable);
Util.insert(dynamic-variable);
Util.insert(dynamic);
Util.insert(variable);
some more line
Util.insert(dynamic-variable);

请在询问之前尝试并展示您的尝试,您甚至不需要正则表达式。拆分并重新格式化字符串。
“Util.{}({})”.format(*s.Split())
用我的尝试和示例更新了我的问题。你能再次检查
r'(/\w+/)(/\w+/)'、r'Util.insert(\2);'为什么要用斜杠?您不想测试
insert
?谢谢Jean。我想这会管用的。我必须在一组文件上运行这个脚本。我会尝试一下。在这种情况下,您必须使用
re.MULTILINE
作为选项或逐行工作。我尝试了以下脚本..它打印预期的输出,但当我打开文件时..字符串未被替换#此Python文件使用以下编码:utf-8 import re;file=open(“testfile.cls”、“rw”);对于文件中的行:line=re.sub(“插入\s+(\w+),r“Util.insert(\1)”,line,flags=re.IGNORECASE);line=re.sub(“更新\s+(\w+),r“Util.insert(\1)”,line,flags=re.IGNORECASE);打印线;file.close();您必须写入另一个文件。读写在这里不起作用。打印不会写入文件。。。检查并回答“如何替换文件中的字符串”之类的问题
Util.insert(dynamic-variable);
Util.insert(dynamic-variable);
Util.insert(dynamic);
Util.insert(variable);
some more line
Util.insert(dynamic-variable);