java中 利用正则表达式提取( )内内容
java中 利用正则表达式提取( )内内容
发布时间:2016-12-28 来源:查字典编辑
摘要:昨天遇到一个小问题,需要批量处理一些用户,而前台传来的用户格式如下,要提取括号中间的内容(不带括号)教师10(0010)教师11(0011)...

昨天遇到一个小问题,需要批量处理一些用户,而前台传来的用户格式如下,要提取括号中间的内容(不带括号)

教师10(0010)

教师11(0011)

教师9(009)

教师12(0012)

教师13(0013)

教师14(0014)

本来想用java的String.split()和substring()来搞定,但是需要处理多次比较麻烦,就用正则表达式了。虽然语法忘得差不多了,但是印象中用断言比较方便(关键希望结果不带括号)。打开RegexBuddy试了下,轻松搞定:

java中 利用正则表达式提取( )内内容1

下边是java实现代码:

复制代码 代码如下:

public List<String> getTeacherList(String managers){

List<String> ls=new ArrayList<String>();

Pattern pattern = Pattern.compile("(?<=()(.+?)(?=))");

Matcher matcher = pattern.matcher(managers);

while(matcher.find())

ls.add(matcher.group());

return ls;

}

最后附一下用到的零宽断言:

宽断言
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Java学习
热门Java学习
编程开发子分类