首页 > 解决方案 > 需要修改我的正则表达式来捕捉本质上相同句子的不同表示

问题描述

好的,所以我正在解析 PDF 文件以仅获取“第 2 节”。我将向您展示我正在处理的 PDF 文件中的一些示例。 开始

结尾

我需要抓住第 2 节中的所有内容(在两个图像之间)这是我的正则表达式(正在进行中)

re.findall('hazards*\sidentification(.*?)information\son\st*h*e*\s*ingredients', text, re.IGNORECASE)

注意:有时它是关于“the”成分的信息。

我尝试了不同的方法,例如使用“SECTION 2”和“SECTION 3”,但在某些文件中,它只是“2”和“3”,所以我达到了这一点。

到目前为止,我的正则表达式在 95% 的文件上都能正常工作,因为文件具有不同的句子,如下所示:

注意第 3 节是如何写的

和这个: 同样的问题

以及诸如此类的其他各种问题。我尝试只使用单词“Hazard”和单词“Composition”来捕获我的正则表达式,但它们出现在第 2 节之前的某些文件中,因此它捕获了错误的部分。

我可以编写多个正则表达式来捕获所有组合,但是如果我的脚本看到一个全新的文件怎么办?我认为这根本没有效率。

任何想法我会如何解决这个问题?

如果需要,我可以提供有关该项目的更多信息。

标签: pythonregexpdftext

解决方案


您不必为所有文档创建单个正则表达式......我什至不会尝试。我只会处理“SECTION 2”/“SECTION 3”的情况,直到正则表达式不起作用。从 regex1 不起作用的文档中,将它们分组到遵循模式的存储桶中,并为该存储桶编写新的正则表达式。重复,直到您将文档分类到几个桶中,并且每个桶都有一个正则表达式。


推荐阅读