正则表达式匹配列表

时间:2016-10-03 16:50:23

标签: java regex

我有以下文字:some unknown random stuff here: (ben, tim, sam toben, suzei)

我需要使用仅限正则表达式从(未知大小)逗号分隔列表中提取每个项目:bentimsam tobensuzei进入匹配的组。前导/尾随空格并不重要。

我尝试了以下操作:(?:\(([^,]+))但它只会将ben作为一个组进行检测。

有什么想法吗?

1 个答案:

答案 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];
    }
}

Demo of the regex on Regex101

这样做是抓住括号的内容,然后将这些内容拆分成逗号字符的数组。