字符串操作 - jython中的re.sub

时间:2009-12-22 00:55:48

标签: jython text-manipulation

假设我有一个像这样的字符串'这是一个声明' 如果我想用这个'这个**声明'来搜索和替换字符串

要搜索的字符串是一个声明,这是一个声明,这是一个声明和任何组合将它们转换为 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()

有些东西是不对的,因为文件中没有任何变化。

谢谢大家。

1 个答案:

答案 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)