如何裁剪文本?

0 投票
2 回答
1012 浏览
提问于 2025-04-17 19:55

我有一些文本,想做一个类似于裁剪图片的操作。

这个文档的大小只有几千字节,但它的格式是

“blah blah 标题 内容 结束 blah blah。”

我想用什么函数来实现,让它像这样 crop(document,"标题","结束"),然后返回 "标题 内容 结束" 呢?

问题是,像 string.replace() 这样的函数总是把已知的文本替换成其他东西。但我知道每个文档里的 标题结束,而在它们之间、之前和之后的内容都是未知的或独特的。

2 个回答

1

有很多种方法,比如:

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

你可以使用一个叫做 find 的方法来找到你想要的起始字符串第一次出现的位置的索引。而使用 rfind 方法可以找到你想要的结束字符串最后一次出现的位置的索引。通过这两个索引,你就可以用Python的切片功能返回文档的正确部分。

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

撰写回答