我不太明白如何处理正则表达式函数......所以我向有知识的人寻求帮助......
我在一个文本文件中有一个任务,其中包含一些格式为“name = 'text'”的值,以查找和替换某些值。对于这个任务,我找到了这篇文章并稍作修改。
def replace(pattern, subst):
with open(file, 'r', encoding="utf-8") as f:
for line in f:
if pattern in line:
pattern = line.replace('\n', '')
print(pattern)
split = line.split('=')
print(split)
file_handle = open(file, 'r', encoding="utf-8")
file_string = file_handle.read()
file_handle.close()
file_string = (
re.sub(pattern, split[0] + '= ' + "'" + subst + "'", file_string))
file_handle = open(file, 'w', encoding="utf-8")
file_handle.write(file_string)
file_handle.close()
一切都会好起来的......但有时在行中有“(”和“)”......字符串根本没有被替换......到这一点......是否有可能以某种方式强制括号是忽略?
Namerek 的答案:
所以......假设在文件中我有一行“Name = 'Bob'”
我需要在这一行中将 'Bob' 更改为 'Jhon'
我调用函数replace('Name', 'Jhon')
在这种情况下,一切正常并且该行变为 "Name = 'Jhon'"
但如果字符串包含括号 "Name = 'Bob(Blob)'"
调用函数时replace('Name', 'Jhon'),字符串保持不变。
input.txtoutput.txt顺便说一句,如果我们假设我们正在谈论一个用户配置文件,其中没有同名参数,那么我们可以提供另一种没有正则表达式的解决方案(记住关于从大炮)