广

Java编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-11-09 09:49:13 次阅读 稿源:互联网
    零七广告

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

    教师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的位置

     

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告