-1

我有几个要从中提取数据的 PDF。我已经设法使用下面的代码从 PDF 中提取所有数据,但是现在我想在两个不同的标题之间提取文本。我相信使用正则表达式是最好的方法,因为两个标题之间的文本会有所不同,但每个 PDF 的两个标题将保持不变。

这是一个示例 PDF:https ://www.scribd.com/document/396797318/123

我想提取标题“3.​​ Induction Training”和“4. Corporate Training/Departmental Training”之间的所有文本

以下代码是我用来从 PDF 中提取数据的代码:

def pdf_to_text(path):
    manager = PDFResourceManager()
    retstr = BytesIO()
    layout = LAParams(all_texts=True)
    device = TextConverter(manager, retstr, laparams=layout)
    filepath = open(path, 'rb')
    interpreter = PDFPageInterpreter(manager, device)

    for page in PDFPage.get_pages(filepath, check_extractable=False):
        interpreter.process_page(page)

    text = retstr.getvalue()

    filepath.close()
    device.close()
    retstr.close()
    return text

if __name__ == "__main__":
    text = pdf_to_text("123.pdf")
    print(text)

我可以使用什么正则表达式来获取我需要的信息?

4

1 回答 1

0

尝试正则表达式:(?<=3\. Induction Training\n).*(?=4\. Corporate Training\/Departmental Training)

演示

于 2019-01-07T14:56:09.723 回答