我正在尝试通过一些正则表达式来解决问题;我正在使用python。
我现在的任务是抓取报纸文章并寻找人们死亡的实例。一旦我有一篇相关的文章,我就会尝试为其他一些事情计算死亡人数。我正在尝试提出一些模式,但特别是我遇到了困难。获取此示例文章部分:
萨那,10 月 21 日(路透社)——部落消息人士和当地官员说,周日,美国无人机在也门对一辆汽车发动明显袭击,导致三名被认为是基地组织武装分子的男子丧生。
我用来捕获“三”的代码首先对整个文档进行替换,以便在应用任何模式之前,“三”变为“3”。与此示例相关的模式是这样的:
re.compile(r"(\d+)\s(:?men|women|children|people)?.*?(:?were|have been)? killed")
这个想法是这个模式将以一个数字开头,后跟一个可选名词,例如列出的名词之一,然后在找到“死亡”或“死亡”之前有最少的混乱。我想留出空间,以便这种模式能够捕捉到:
3 people have been killed since Sunday
并且仍然捕获示例中的实例:
3 men thought to be al qaeda militants were killed
问题是我使用的模式是从文章的第一部分收集日期,并返回 21 的计数。到目前为止,没有多少摆弄使我能够将范围限制在 men 旁边的数字,然后是分词短语,然后是相关的“被杀”。
任何帮助将非常感激。在 RE 方面,我绝对不是专家。