zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

JAVA正则表达式 利用 内容 提取
2023-06-13 09:14:49 时间

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

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

下边是java实现代码:

复制代码代码如下:


publicList<String>getTeacherList(Stringmanagers){
       List<String>ls=newArrayList<String>();
       Patternpattern=Pattern.compile("(?<=\\()(.+?)(?=\\))");
       Matchermatcher=pattern.matcher(managers);
       while(matcher.find())
           ls.add(matcher.group());
       returnls;
   }

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

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