Python string.replace regular expression
本问题已经有最佳答案,请猛点这里访问。
我有一个表单的参数文件:
1 | parameter-name parameter-value |
其中参数可以是任意顺序,但每行只有一个参数。我想用一个新值替换一个参数的
我使用之前发布的一个line replace函数来替换使用python的
下面是我使用的正则表达式:
1 | line.replace("^.*interfaceOpDataFile.*$/i","interfaceOpDataFile %s" % (fileIn)) |
其中,
有没有方法让Python识别这个正则表达式,或者有其他方法来完成这个任务?
要使用正则表达式执行替换,请使用
例如:
1 2 3 4 5 6 7 | import re line = re.sub( r"(?i)^.*interfaceOpDataFile.*$", "interfaceOpDataFile %s" % fileIn, line ) |
在循环中,最好先编译正则表达式:
1 2 3 4 5 6 | 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 |
您正在查找re.sub函数。
1 2 3 4 | import re s ="Example String" replaced = re.sub('[ES]', 'a', s) print replaced |
将打印
作为总结
1 2 3 4 5 6 7 8 9 10 | import sys import re f = sys.argv[1] find = sys.argv[2] replace = sys.argv[3] with open (f,"r") as myfile: s=myfile.read() ret = re.sub(find,replace, s) # <<< This is where the magic happens print ret |
你一定要找的是
1 | re.sub(r"(?i)interfaceOpDataFile","interfaceOpDataFile %s" % filein, line) |
将执行相同的操作——匹配看起来像"interfaceopdatafile"的第一个子字符串并替换它。