我已经将 PDF 页面中的文本提取到文本变量中。 我正在寻找提取字符串“您的号码是”之后的数字(14 长度的字符串在跨度(982,996)上匹配:
object=PyPDF2.PdfFileReader(filename)
Text = PageObj.extractText()
PageObj = object.getPage(0)
ResSearch = re.search(String, Text)
我得到一个结果:span = (982, 996) match = 'your number is'。现在我需要的是抓取后面的三位数文本(“您的号码是105”),因为文件每天都在变化,并且获取应该是动态的。
谢谢大家!!
问题在于正则表达式而不是 pdf 本身。假设每页最多有一个匹配项,您可以使用
search
,否则使用 findall
。查看 doc 关于如何使用组的部分,带有 (...)
的部分。
import PyPDF2, re
filename = '' #
pdf_r = PyPDF2.PdfFileReader(open(filename, 'rb'))
text = pdf_r.getPage(0).extractText() # from 1st page or make a loop
if p := re.search(r'your number is (\d{3})', text):
my_number = int(p.groups()[0]) # as int
使用PyPDF4,语法是相同的,并且它不“有”这样的
extractText
问题: