假设我有一个像这样的字符串'这是一个声明' 如果我想用这个'这个**声明'来搜索和替换字符串
要搜索的字符串是一个声明,这是一个声明,这是一个声明和任何组合将它们转换为 trim 一个声明 即对于此&之间的任何单词组合声明用 trim 替换它 对于另一组,将 fun 替换为 notfun 。
import re
file=open('file','r+')
search=re.sub('this \(a_zA_Z0_9)+ a statement','\1trim',file),('this is fun','this is notfun',file)
file.close()
有些东西是不对的,因为文件中没有任何变化。
谢谢大家。
答案 0 :(得分:1)
re.sub
不适用于文件,它适用于字符串。您需要将文件的内容读入字符串,然后使用re.sub更改字符串,然后将修改后的字符串写回文件。
一个简单的例子:
text = open("myfile.txt").read()
# This is your original re.sub call, but I'm not sure it really does what you want.
text = re.sub('this \(a_zA_Z0_9)+ a statement', '\1trim', text)
text = re.sub('this \(a_zA_Z0_9)+ another replacement', 'some other thing', text)
open("myfile.txt", "w").write(text)