python 在字符串中使用正则表达式获取所需信息

w51jfk4q  于 2022-12-17  发布在  Python
关注(0)|答案(2)|浏览(103)

我有一个下面的文本是使用pdfminer提取的。

pdfminer的输出
工作经验-工作岗位/职位-销售助理@ DFS任职时间-2021年6月-至今目前我在DFS担任销售助理,我的职责包括帮助客户进行产品查询并满足客户需求,同时还要应对困难/沮丧的客户。在DFS,很多事情都可能出错,因此必须能够处理许多不同类型的异议,并始终向客户表示理解,以满足他们的需求。在这个职位上,我希望能够实现我目前没有问题的销售目标。工作职位/单位-抹灰工@ MB抹灰工的工作期限-2016年9月-至今作为一名抹灰工,我能够发展我的实际交易技能。专业领域-●客户互动●客户服务●适应力●建立Harmony关系●交易员●仓库工作个人技能-●友好●自信●表达清晰●自我激励●守时
预期产出:

工作经验-工作角色/职位-销售助理@ DFS任职时间-2021年6月-至今目前我在DFS担任销售助理,我的职责包括帮助客户进行产品查询并满足客户需求,同时还要应对困难/沮丧的客户。在DFS,很多事情都可能出错,因此必须能够处理许多不同类型的异议,并始终向客户表示理解,以满足他们的需求。在这个职位上,我希望我能实现目前我没有问题的销售目标。工作职位/单位-抹灰工@ MB抹灰工的工作期限-2016年9月-至今作为一名抹灰工,我能够发展我的实际交易技能。
在某些文本中,工作经验用其他术语表示,如经验、工作经验等。
我期待着写一个通用的正则表达式逻辑,以获取之间的工作经验和专业领域的文本。
我尝试的模式如下:

pattern = r'^(?:EXPERIENCE|Employment experience|Work Experience|Work  Experience|WORK EXPERIENCE|Previous Employment|Work Experience -|Job experience|)\s*(\S.*?)\n(?:Skills|EDUCATION|Education|SKILLS|Areas  Of  Expertise)'

matches = re.findall(pattern, text, re.M | re.S)
print(matches)

但我得到的输出是[]
错过了什么?如何处理?

pgky5nke

pgky5nke1#

尝试以下模式:

pattern = r'^(?:EXPERIENCE|Employment experience|Work Experience|Work  Experience|WORK EXPERIENCE|Previous Employment|Work Experience -|Job experience)\s*(.+?)\n(?:Areas Of Expertise|SKILLS|Education|EDUCATION)'
sr4lhrrt

sr4lhrrt2#

正则表达式的第一部分可以用途:
^(?:EXPERIENCE|Employment experience|Work Experience|Work Experience|WORK EXPERIENCE|Previous Employment|Work Experience -|Job experience)
之后,您需要(.*)之间的所有内容,直到特定的子字符串(?=Areas Of Expertise)
总计:
^(?:EXPERIENCE|Employment experience|Work Experience|Work Experience|WORK EXPERIENCE|Previous Employment|Work Experience -|Job experience)(.*)(?=Areas Of Expertise)
其中,(?=)表示向前查找并排除您要查找的关键字,如下所述Regex Match all characters between two strings

相关问题