【发布时间】:2019-08-04 00:00:01
【问题描述】:
我正在尝试使用 pdfminer 和正则表达式从简历中提取电子邮件
from io import StringIO
from pdfminer3.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer3.converter import TextConverter
from pdfminer3.layout import LAParams
from pdfminer3.pdfpage import PDFPage
import re
def get_cv_email(self, cv_path):
pagenums = set()
output = StringIO()
manager = PDFResourceManager()
converter = TextConverter(manager, output, laparams=LAParams())
interpreter = PDFPageInterpreter(manager, converter)
infile = open(cv_path, 'rb')
for page in PDFPage.get_pages(infile, pagenums):
interpreter.process_page(page)
infile.close()
converter.close()
text = output.getvalue()
output.close()
match = re.search(r'[\w\.-]+@[\w\.-]+', text)
email = match.group(0)
return email
大多数简历的电子邮件已成功提取,但始终无法正常工作
示例:jayantanathcdh@gmail.comEducationalQualification
更新:如果电子邮件以大写字母开头,我如何编辑我的正则表达式以忽略电子邮件之后的内容
【问题讨论】:
-
此答案可能会帮助您重新表述问题:stackoverflow.com/a/11453831/3564632。当然,您必须确定您期望的电子邮件的策略,可能可以定义您想要支持的所有域的列表并支持该列表。或者,如果您想要更多通用解决方案,您必须真正保持最新列表的更新。我想我链接的那个答案应该提供足够的许可
-
我们可以假设在每封电子邮件之后都有一个非单词或大写单词吗?这是真的吗?
-
所以这意味着“不”,除非您想要一个“在大多数情况下”有效的解决方案:-)
-
实际上我用超过 143 份简历测试了这个程序,只有一份出现了这个错误。如果电子邮件以大写字母开头,我如何编辑我的正则表达式以忽略电子邮件之后的内容?
-
@AmineMessaoudi 我根据您的上一条评论发布了答案
标签: python regex email pdfminer