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