我有一个参数文件的形式:
parameter-name parameter-value
其中参数可以是任意顺序,但每行只有一个参数。我想用一个新值替换一个参数的参数值。
我正在使用之前发布的行替换函数来替换使用Python字符串的行。替换(模式,子)。我正在使用的正则表达式在vim中工作,但在string.replace()中似乎不起作用。
下面是我使用的正则表达式:
line.replace("^.*interfaceOpDataFile.*$/i", "interfaceOpDataFile %s" % (fileIn))
其中“interfaceOpDataFile”是我要替换的参数名(/ I不区分大小写),新参数值是fileIn变量的内容。
有没有办法让Python识别这个正则表达式,或者有没有其他方法来完成这个任务?
Str.replace () v2|v3不识别正则表达式。
要使用正则表达式执行替换,请使用re.sub() v2|v3。
例如:
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
Str.replace () v2|v3不识别正则表达式。
要使用正则表达式执行替换,请使用re.sub() v2|v3。
例如:
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