我是python&的新手我想执行以下操作。
我有很多带有
等语句的文本文件 insert dynamic-variable;
//请注意,动态变量是我想要在替换语句中使用的动态词。
我想用
替换上面的语句 Util.insert(dynamic-variable)
;
在python中完成此操作的最佳方法是什么?我正在经历REGEX& Backreferance文档,但一些具体的方向将有所帮助。
所以,我正在尝试这种东西
import re
input = "insert account;"
result = re.sub(r'((?:insert))(\w+);', r'Util.insert(\2);', )
结果字符串应为Util.insert(帐户);
input = "insert contact;"
result = re.sub(r'((?:insert))(\w+);', r'Util.insert(\2);', )
结果字符串应为Util.insert( contact );
答案 0 :(得分:0)
(编辑问题,所以第一个解释是没有实际意义的......但现在由于正则表达式中缺少空格字符而无法正常工作......加上非捕获组不是你需要的,你需要使用insert
来代替Util.insert
)
好的,只需创建一个捕获组:变量名称
工作正则表达式&例如:
import re
s = "insert variable;"
print(re.sub("^insert\s+(\w+)",r"Util.insert(\1)",s))
打印:
Util.insert(variable);
(\w+)
匹配任何字母,数字和下划线,这可能涵盖您可以定义的变量。
答案 1 :(得分:0)
尝试以下方法: -
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);