我如何在我的 pdfminer 代码中使用正则表达式来提取两个标题之间的文本?

How can i use regex in my pdfminer code to extract text between two headings?

我有几个要从中提取数据的 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)

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

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

Demo