昨天遇到一個小問題,需要批量處理一些用戶,而前台傳來的用戶格式如下,要提取括號中間的內容(不帶括號)
教師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;
}
最後附一下用到的零寬斷言: