我正在尝试使用 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
大多数简历都成功提取了电子邮件,但它并不能一直正常工作
更新:如果电子邮件以大写开头,我如何编辑我的正则表达式以忽略它之后的内容
根据您的最后一条评论匹配您正在匹配的电子邮件,直到在@
您可以使用此正则表达式后找到大写字母:
[\w\.-]+@[a-z0-9\.-]+
举个例子:
import re
text = "[email protected]"
match = re.search(r'[\w\.-]+@[a-z0-9\.-]+', text)
email = match.group(0)
print(email)
#[email protected]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句