我正在编写一个关于在pdf中提取文本的函数,我也在使用pyPdf库。 提取没问题。但我遇到了一些问题,比如排除换行符。
所以我找到了添加换行符的方法,所以我这样做了:
# Iterate pages
for i in range(0, pdf.getNumPages()):
# Extract text from page and add to content
content += pdf.getPage(i).extractText()
content = content.replace('. ', '. <br />')
pages += content
# Collapse whitespace
content = " ".join(pages.replace(u"\xa0", " ").strip().split())
问题甚至是这样的例子:
1. Apple
变成这样:
1.
Apple
不应该这样。我只想在句子的每一端添加换行符。
有没有办法检查或确定句子何时结束? 或者检查它是否为编号?
答案 0 :(得分:2)
一个hackish解决方案是仅在完全停止不是紧跟数字之前执行替换。将行content = content.replace('. ', '. <br />')
更改为以下内容:
import re
re.sub(r'([^0-9])\. ', r"\1. <br />", content)
答案 1 :(得分:0)
为什么不使用re.sub()?
对于点状线并且可能带有一些空格,模式应为“。\ s * $”,即
import re
:
content = re.sub('\.\s*$', '. <br />', content)
答案 2 :(得分:0)
pyPdf非常适合某些事情,但不是很擅长文本提取。看看pdfminer库。或者使用像pdftotext这样的工具。