在 python 中提取位置或持续时间旁边的词

Extracting words next to a location or Duration in python

如何提取位置或持续时间旁边的字词? python 中执行此操作的最佳正则表达式是什么?

示例:-

Kathick Kumar,班加罗尔,他是一个伟大的人,生活于 1980 年 3 月 29 日至 2014 年 12 月 21 日。

在上面的示例中,我想提取位置之前的词和持续时间之前的词。这里的位置和持续时间不固定,python 中最好的正则表达式是什么?或者我们可以使用 nltk 来做到这一点吗?

期望的输出:-

输出 1:Karthick Kumar(这里的关键字是位置)

Output-2:谁是一个伟大的人并且生活在(这里的关键字是持续时间)

我建议使用 Lookaheads

在您的示例中,假设您想要 Bangalore1980 年 3 月 29 日 - 2014 年 12 月 21 日 之前的词,您可以使用前瞻(和回顾)以获得相关匹配。

我使用了这个正则表达式:(.*)(?>Bangalore)(.+)(?=29th March 1980 - 21 Dec 2014) 并捕获了括号中的文本,可以使用 </code> 和 <code>.

访问它

DEMO