在我的文字中会有以下内容:
2 years of experiences of databse, XXXBBXBXB 3 years databse and sql experiences,
UUYFS 3 year experiences, 4 yeears databse contract, 5 years contract
我想要的是在模式之前找到模式并得到单个数字:
1: years of experience
2: year of experiences
...
将会出现一些文字将在“'年”之间出现的情况。和经历'。它可能会出现在' years'或者'年' OR'年经历'等等。
但最终输出将如下所示:(不包括其他模式的数字,例如'年合约'等等)
2, 3, 3
我尝试了类似' \ years \ experience'的内容,但似乎是错误的。
有任何帮助吗?感谢
答案 0 :(得分:2)
尝试使用以下正则表达式
(\d+)\s+(year|years)
使用Matcher#group()获取第1组的数字,查找括号()中的组。
示例代码:
String url = "2 years of experiences of databse, XXXBBXBXB 3 years databse and sql experiences, UUYFS 3 year experiences";
Pattern pattern = Pattern.compile("(\\d+)\\s+(year|years)");
Matcher matcher = pattern.matcher(url);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
输出:
2
3
3
根据您的评论尝试以下模式:
(\d+)\s+(years of experience|year experience)
答案 1 :(得分:1)
我认为你正在寻找这样的东西:
(\d+)\s+years?\s+.*?\s+experience