昨天遇到一个小问题,需要批量处理一些用户,而前台传来的用户格式如下,要提取括号中间的内容(不带括号)
教师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;
}
最后附一下用到的零宽断言:
更多java 正则表达式学习总结和一些小例子。