java中 利用Regex提取( )內內容

來源:互聯網
上載者:User

昨天遇到一個小問題,需要批量處理一些使用者,而前台傳來的使用者格式如下,要提取括弧中間的內容(不帶括弧)

教師10(0010)
教師11(0011)
教師9(009)
教師12(0012)
教師13(0013)
教師14(0014)
  
本來想用java的String.split()和substring()來搞定,但是需要處理多次比較麻煩,就用Regex了。雖然文法忘得差不多了,但是印象中用斷言比較方便(關鍵希望結果不帶括弧)。開啟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的位置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.