Python 检查文本文件中关键字周围是否有数字

Python 检查文本文件中关键字周围是否有数字,python,Python,我有一个文本文件“Filter.txt”,其中包含一个特定的关键字“D&O保险”。我会检查句子中是否有包含该关键字的数字,以及前后两个句子 例如,我有一个这样的长段落: “对于拥有全球子公司和办事处的公司来说,国际保险计划是必要的。保险范围通常是针对公司及其子公司的现任、未来和过去的董事和高级职员。D&O保险根据提出的索赔提供保险。多少钱够了?承保的是什么?承保的是谁?以及未承保的?” 目标词是“D&O保险”。如果我想提取目标句(D&O保险在索赔的基础上提供保险)以及前面和后面的句子(保险范围通

我有一个文本文件“Filter.txt”,其中包含一个特定的关键字“D&O保险”。我会检查句子中是否有包含该关键字的数字,以及前后两个句子

例如,我有一个这样的长段落:

“对于拥有全球子公司和办事处的公司来说,国际保险计划是必要的。保险范围通常是针对公司及其子公司的现任、未来和过去的董事和高级职员。D&O保险根据提出的索赔提供保险。多少钱够了?承保的是什么?承保的是谁?以及未承保的?”

目标词是“D&O保险”。如果我想提取目标句(D&O保险在索赔的基础上提供保险)以及前面和后面的句子(保险范围通常针对公司及其子公司的现任、未来和过去的董事和高级职员。多少钱足够?),什么是好方法

这就是我目前正在努力做的。然而,我真的不知道如何申请寻找方法来检查整个句子及其周围的句子

for line in open('Filter.txt'):
    match = re.search('D&O insurance(\d+)',line)
    if match:
        print match.group(1)
我是编程新手,所以我正在为此寻找可能的解决方案


谢谢你的帮助

好吧,我来试试看。假设
string
是.txt文件的全部内容(您可能需要清除'/n's)

您需要创建一个潜在句子结尾的列表,使用该列表查找句子结尾的索引位置,然后使用该列表创建文件中句子的列表

string=“对于拥有全球子公司和办事处的公司来说,国际保险计划是必要的。保险范围通常是针对公司及其子公司的现任、未来和过去的董事和高级职员。D&O保险补助金以索赔为基础。多少够了?承保的是什么?承保的是谁?哪些不承保?”
结尾=['!'、'?'、'.']
def pos_查找(字符串):
lst=[]
以结尾结尾:
i=string.find(结束)
如果我-1:
lst.append(string.find(ending))
返回最小值(lst)
def sort_语句(字符串):
句子=[]
尽管如此:
尝试:
i=位置查找(字符串)
追加(字符串[0:i+1])
字符串=字符串[i+2:]
除值错误外:
句子。追加(字符串)
打破
复句
句子=对句子进行排序(字符串)
一旦你有了句子列表(我在这里有点厌倦了,所以请原谅意大利面代码-功能就在那里),你需要梳理该列表以找到可能是整数的字符(这就是我检查数字的方式…但你可以做不同的事情)

适用于范围内的i(len(句子)):
句子
匹配=句子。查找(‘D&O保险’)
打印(匹配)
如果匹配>=0:
lst=[句子[i-1],句子,句子[i+2]]
对于范围内的j(len(lst)):
sen=lst[j]
对于sen中的char:
尝试:
整数(字符)
打印(在{sen},索引{j}中找到{char})
除值错误外:
通过

请注意,您必须进行一些修改以捕获多个数字。这将只为整数中的每个整数打印一些内容(即,如果在文件中找到100,它将打印1、0和0的语句)。您还需要抓住在第一句或最后一句中发现D&O保险子串的两个边缘情况。在上面的代码中,您会抛出一个错误,因为没有i-1(如果它是第一个)索引位置。

您能在问题中添加
Filter.txt
内容的示例吗?另外,你能展示一下你期望从样本中得到什么样的结果吗?@TlsChris谢谢你的建议。我已经编辑了我的问题。你知道吗?我不怎么处理文本。我想列一个句子列表,但我不知道怎么做。句号出现在缩略语中,句子也可以以问号结尾。