删除python中的某些文本模式

问题描述 投票:-1回答:2

我正在尝试摆脱.txt文件中的某种文本模式,该模式类似于:


“示例删除词在第一块

要保留的第一句话。

示例删除词在第二块

保留第二句话。

示例删除词在第三块

保留第三句话。

示例删除词在第四块“


我想要的输出看起来像:


“要保留的第一句话。

保留第二句话。

保留第三句话。“


所以我想做的是摆脱字符串“ example”和“ block”之间的所有文本,包括字符串本身。知道我将如何使用R或Python进行此操作吗?

python r text-processing python-textprocessing
2个回答
0
投票

在R中,您可以使用str_remove_all中的stringr

stringr::str_remove_all(string, "example.*block")
 #[1] " First sentence to keep.\nSecond sentence to keep.\nThird sentence to keep.\n"

0
投票

您是否已经提前知道模式,或者模式曾经改变过?如果不是,那么您可以阅读文本文件,逐行阅读,分割句子以方便操作,然后寻找模式。对于没有它的行,可以将其连接到新字符串。我下面的东西似乎起作用:

f = open("mytext.txt", "r")
final = ""
for line in f:
    words = line.split(" ")
    if(words[0] == "example" or words[len(words) - 1] == "block\n"):
        continue
    else:
        final = final + line
print(final)
© www.soinside.com 2019 - 2024. All rights reserved.