如何在文本文件中查找替换");"模式?代码修改咨询
解决正则替换连续");"的问题
嘿,你的问题出在正则表达式的写法上~原代码里的[);]是字符类,它会匹配单独的)或者;,所以每个出现的这两个字符都会被替换成目标字符串,这显然不是你想要的效果。
要精准匹配连续的);组合,你需要把正则改成匹配这个完整的序列,注意)是正则中的特殊字符,需要用反斜杠转义,或者直接使用Python的原始字符串(在字符串前加r)来避免转义麻烦。
这里给你修改后的完整代码,同时我还把文件操作改成了更安全的with语句(它会自动帮你关闭文件,避免资源泄漏):
import re # 读取源文件内容 with open('trial.txt', 'r') as input_file: content = input_file.read() # 精准替换连续的");"为指定字符串 modified_content = re.sub(r'\);', 'firstdata);seconddata', content) # 写入到新文件 with open('b.txt', 'w') as output_file: output_file.write(modified_content)
简单解释下关键修改点:
- 把
'[);]'改成了r'\);':这个正则会精确匹配连续的)和;,而不是单个字符 - 使用
with语句处理文件:比直接open()然后手动关闭更可靠,即使程序中途出错也能确保文件被正确关闭
内容的提问来源于stack exchange,提问作者H.K
相关产品推荐
相关产品推荐

