关于正则表达式的写法

_rock_stone_ 2018-08-10 05:11:49
大家好,现在公司有一个需求:读取word简历中的关键字段,并保存到数据库中。
类似这样:

自我评价
性格随和,有较好的学习和沟通

求职意向
工作性质:全职

工作经历
在一家工作工作一年,好评如潮。

希望读取每一部分内容。想用正则表达式来读出来每一段的文字。
正则我是这样写的:


String p = “自我评价[\S|\s]*(求职意向|工作经历)";
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(str);
List<String> findStrList = new ArrayList<>();
while(matcher.find()){
findStrList.add(matcher.group());
}
return findStrList;

想一次得到每一部分的文字,但没有效果,了解这方面的大虾指教,如何实现需求。



测试文本如下:

自我评价
性格随和,有较好的学习和沟通,
协作能力,工作中思维敏捷、诚实严谨!


求职意向
工作性质: 全职
期望职业: 人力资源
期望行业: 耐用消费品(服饰/纺织/皮革/家具/家电)、电气/电力/水利、互联网/电子商务
工作地区: 北京
期望月薪: 面议
目前状况: 一周左右可上岗

工作经历
2017/03 - 至今 三六九环球(北京)网络有限公司
(1年1个月)
薪酬绩效主管
|8001-10000元/月
互联网/电子商务
| 企业性质:民营| 规模:100-499人
工作描述:工作内容:
1、负责员工薪酬核算,年终奖、销售提成、项目奖金等多项内容(300-500人左右);
2、薪酬相关数据分析,数据测算,定期形成人力报告,有效监控人力成本。

2014/08 - 2017/03 北京金美仕贸易有限公司

薪酬绩效专员
|6001-8000元/月
耐用消费品(服饰/纺织/皮革/家具/家电)
| 企业性质:外商独资| 规模:1000-9999人
工作描述:工作内容:
员工关系模块:
1、入离转调业务办理,档案管理,ehr管理;
2、熟悉劳动法等相关法律法规,合理规避用工风险,解答相关问题;
薪酬绩效
1、制作公司每月的工资报表,按时发放工资(1000人);
2、社保公积金政策了解,业务办理及数据审核;
...全文
266 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
csudjf 2018-08-15
  • 打赏
  • 举报
回复
1.先从文本中加载内容
public String readFileContent(File file){}
2.按关键字list,找出对应的行(维护好关键字list与对应的行list,一对一)
private List<Integer> keyposs = new ArrayList<Integer>();
private List<String> keystrs = new ArrayList<String>();
3.读取行与行之间的内容就是你要的,当前行与下一个关键字的行号之间
当然前提是关键字要全文本中关键字不要重,才会取的准
s360892223 2018-08-14
  • 打赏
  • 举报
回复
看到码农的简历,真的感觉累
_rock_stone_ 2018-08-13
  • 打赏
  • 举报
回复
引用 3 楼 maradona1984 的回复:
不建议使用正则表达式,简历的模版很多种,你正则表达式很难覆盖全的
可以考虑分词+关键字方向思考,应该有很多开源库的
当然我没实践过,只是提供一个思路
,多谢~~
maradona1984 2018-08-13
  • 打赏
  • 举报
回复
不建议使用正则表达式,简历的模版很多种,你正则表达式很难覆盖全的
可以考虑分词+关键字方向思考,应该有很多开源库的
当然我没实践过,只是提供一个思路
_rock_stone_ 2018-08-13
  • 打赏
  • 举报
回复
谢回复,还有一点问题:像自我评价,求职意向,工作经历这些,可能次序不一定,可能工作经历在求职意向前面,有无这类正则,可以以"或"的方式,查出所有可能的结果(之前这么写:String p = “自我评价[\S|\s]*(求职意向|工作经历)",是想达到这种结果,可是最后只有一个结果)。如果不能一次实现,有无思路可以提供下~~~
Gavin__Zhang 2018-08-13
  • 打赏
  • 举报
回复
模板不固定的话,正则表达式起不了作用。真想做成什么简历模板都能解析的话,很有难度啊
zzxiaoma 2018-08-10
  • 打赏
  • 举报
回复
public static void main(String[] args) {
String word = "\r\n" + "自我评价\r\n" + "性格随和,有较好的学习和沟通,\r\n" + "协作能力,工作中思维敏捷、诚实严谨!\r\n" + "\r\n"
+ "\r\n" + "求职意向\r\n" + "工作性质: 全职\r\n" + "期望职业: 人力资源\r\n"
+ "期望行业: 耐用消费品(服饰/纺织/皮革/家具/家电)、电气/电力/水利、互联网/电子商务\r\n" + "工作地区: 北京\r\n" + "期望月薪: 面议\r\n"
+ "目前状况: 一周左右可上岗\r\n" + "\r\n" + "工作经历\r\n" + "2017/03 - 至今 三六九环球(北京)网络有限公司\r\n"
+ "(1年1个月) \r\n" + " 薪酬绩效主管\r\n" + "|8001-10000元/月\r\n" + " 互联网/电子商务\r\n"
+ "| 企业性质:民营| 规模:100-499人\r\n" + " 工作描述:工作内容:\r\n"
+ "1、负责员工薪酬核算,年终奖、销售提成、项目奖金等多项内容(300-500人左右);\r\n"
+ "2、薪酬相关数据分析,数据测算,定期形成人力报告,有效监控人力成本。\r\n" + "\r\n" + "2014/08 - 2017/03 北京金美仕贸易有限公司\r\n"
+ "\r\n" + " 薪酬绩效专员\r\n" + "|6001-8000元/月\r\n" + " 耐用消费品(服饰/纺织/皮革/家具/家电)\r\n"
+ "| 企业性质:外商独资| 规模:1000-9999人\r\n" + " 工作描述:工作内容:\r\n" + "员工关系模块:\r\n"
+ "1、入离转调业务办理,档案管理,ehr管理;\r\n" + "2、熟悉劳动法等相关法律法规,合理规避用工风险,解答相关问题;\r\n" + "薪酬绩效\r\n"
+ "1、制作公司每月的工资报表,按时发放工资(1000人);\r\n" + "2、社保公积金政策了解,业务办理及数据审核;\r\n";
String p = "自我评价((\\S|\\s)*)求职意向";
Pattern pattern = Pattern.compile(p);
Matcher matcher = pattern.matcher(word);
List<String> findStrList = new ArrayList<>();
if (matcher.find()) {
System.out.println(matcher.group(1));
}
p = "求职意向((\\S|\\s)*)工作经历";
pattern = Pattern.compile(p);
matcher = pattern.matcher(word);
if (matcher.find()) {
System.out.println(matcher.group(1));
}
p = "工作经历((\\S|\\s)*)";
pattern = Pattern.compile(p);
matcher = pattern.matcher(word);
if (matcher.find()) {
System.out.println(matcher.group(1));
}
}

50,634

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧