2013-03-21 48 views
0

我有各种各样的文本,我想要执行类似于裁剪图片的操作。如何裁剪文字?

该文件的长度是几千字节但形式是

“等等等等标题本体端等等等等。”

我可以用什么函数来做crop(document,"title","end")并让它返回"title body end"

问题是,用于替换string.replace()等文本的函数总是用某些其他替换已知文本。但我知道title在每个文件中,end和但内容before之间和之后是未知的或唯一的。

回答

1

您可以使用该方法find让你的起始字符串和rfind中第一次出现的索引来获取结束最后一次出现的索引串。通过这些索引,您可以使用Python的切片返回文档的正确部分。

def crop(doc, start, end): 
    return doc[doc.find(start):doc.rfind(end)+len(end)] 
1

的方法有很多,例如:

import re 
doc = "blah blah title body end blah blah." 
print re.search('title.+?end', doc).group(0) # title body end