使用Java中的Regex在方括号内用逗号分隔值

我有一个像这样的字符串:

String text = "[Values, one, two, three]"; 

我尝试用Guava的类Splitter做到这一点:

 List split = Splitter.on(",").splitToList(text); 

但我的结果是:

 [Values one two three] 

如何使用Regex获取值为1,2和3的List?

首先使用replaceAll()从字符串中删除[] 。 然后使用\s*,\s*进行拆分\s*,\s*这意味着逗号可以在其之前或之后具有可选空格。

 String []splits = text.replaceAll("^\\s*\\[|\\]\\s*$", "").split("\\s*,\\s*"); 

现在使用Arrays.asList()String数组转换为List

你不需要正则表达式,只需使用字符串操作。

 List values = new ArrayList(Arrays.asList(text.substring(1, text.length() - 1).split(", "))); 

如果您需要删除第一个值,那么只需执行以下操作:

 values.remove(0);