加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 23:11:39 所属栏目:百科 来源:网络整理
导读:昨天遇到一个小问题,需要批量处理一些用户,而前台传来的用户格式如下,要提取括号中间的内容(不带括号) 教师10(0010 ) 教师11( 0011 ) 教师9( 009 ) 教师12( 0012 ) 教师13( 0013 ) 教师14( 0014) 本来想用java的String.split()和substring()来搞定,但

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

教师10(0010) 教师11(0011) 教师9(009) 教师12(0012) 教师13(0013) 教师14(0014)

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

  下边是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的位置

  参考:deerchao大大的正则表达式30分钟入门教程

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读