Python:使用REGEX替换字符串

时间:2018-06-05 18:56:19

标签: python

我是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 );

2 个答案:

答案 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);