我有以下文字:some unknown random stuff here: (ben, tim, sam toben, suzei)
我需要使用仅限正则表达式从(未知大小)逗号分隔列表中提取每个项目:ben
,tim
,sam toben
,suzei
进入匹配的组。前导/尾随空格并不重要。
我尝试了以下操作:(?:\(([^,]+))
但它只会将ben
作为一个组进行检测。
有什么想法吗?
答案 0 :(得分:2)
这不是您可以通过正则表达式 以您想要的方式执行的操作。但是,可以使用正则表达式和String.split()
来完成它。
这样的事情:
String[] getList(String text) {
Pattern p = Pattern.compile(".+\\((.+)\\)"); // Note the doubled backslashes
Matcher m = p.matcher(text);
if (m.find()) {
return m.group(1).split(",");
} else {
return new String[0];
}
}
这样做是抓住括号的内容,然后将这些内容拆分成逗号字符的数组。