我有一个形式的参数文件:
parameter-name parameter-value
其中参数可以按任何顺序排列,但每行只有一个参数。我想parameter-value用一个新值替换一个参数。
parameter-value
我正在使用之前发布的行替换功能来替换使用 Python 的string.replace(pattern, sub). 例如,我使用的正则表达式在 vim 中有效,但似乎不适用于string.replace().
string.replace(pattern, sub)
string.replace()
这是我正在使用的正则表达式:
line.replace("^.*interfaceOpDataFile.*$/i", "interfaceOpDataFile %s" % (fileIn))
我要替换的参数名称在哪里"interfaceOpDataFile"(/i 表示不区分大小写),新参数值是fileIn变量的内容。
"interfaceOpDataFile"
fileIn
有没有办法让 Python 识别这个正则表达式,或者有没有另一种方法来完成这个任务?
str.replace() v2 | v3不识别正则表达式。
str.replace()
要使用正则表达式执行替换,请使用re.sub() v2 | v3。
re.sub()
例如:
import re line = re.sub( r"(?i)^.*interfaceOpDataFile.*$", "interfaceOpDataFile %s" % fileIn, line )
在循环中,最好先编译正则表达式:
import re regex = re.compile(r"^.*interfaceOpDataFile.*$", re.IGNORECASE) for line in some_file: line = regex.sub("interfaceOpDataFile %s" % fileIn, line) # do something with the updated line