番石榴分离器的模式

时间:2014-04-30 13:24:04

标签: java split guava splitter

我需要用逗号或点或反斜杠分割String:

Pattern stringPattern = Pattern.compile("\\s+|,|\\\\|");
Splitter.on(stringPattern).omitEmptyStrings().split(description));

但这种模式不起作用,出了什么问题?

3 个答案:

答案 0 :(得分:9)

为什么不使用CharMatcher

Splitter.on(CharMatcher.anyOf(",.\\")).omitEmptyStrings().split(description);

考虑到你的简单问题,我认为你不需要正则表达式。

答案 1 :(得分:2)

逗号或点或反斜杠的正确正则表达式为[.,\\],因此在Java中

Pattern.compile("[.,\\\\]")

我确实喜欢Olivier对CharMatcher的建议。

答案 2 :(得分:-1)

我将string.split与正则表达式一起使用。以下应该工作(我还没试过)

 description.split(",.\\")

然后进行空检查(因为这样的分离器具有相同的额外api)。

模式对于识别“组”非常有用。任何与正则表达式相关的拆分都可以用字符串(而不是模式)来完成 - 这不是为了阻止使用Guava!