首页 > 解决方案 > 如何在文本列表中找到一个字符串和它之后和之前的 N 个单词和

问题描述

我有一个包含文件文本的列表。我将在每个文档上搜索一个特殊的单词,然后提取字符串前后的 20 个单词。最后,将每个发现记录到一个数据框中。我知道我应该使用正则表达式,但我不知道在找到这个词之前和之后我应该如何计算。以及我应该如何设置代码以继续搜索文本的其余部分。

标签: pythonregex

解决方案


您可以使用 find 方法,然后对文本进行切片。它会给出这样的结果:

to_extract = ""
pos = txt.find(TO_FIND)
if pos != -1:
    if pos > 20 and pos + 20 < len(txt):
        to_extract = txt[pos-20:pos+20]
    elif pos < 20:
        to_extract = txt[:pos+20]
    elif pos + 20 > len(txt):
        to_extract = txt[pos-20:]

注意:我没有对此进行测试,但这是要走的路,而且它仅适用于单词的第一次出现


推荐阅读