【问题标题】:Pattern for Guava Splitter番石榴分离器的模式
【发布时间】:2014-04-30 13:24:03
【问题描述】:

我需要用逗号或点或反斜杠分割字符串:

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

但是这种模式不起作用,有什么问题?

【问题讨论】:

    标签: java split guava splitter


    【解决方案1】:

    为什么不使用CharMatcher

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

    鉴于您的简单问题,我认为您不需要正则表达式。

    【讨论】:

      【解决方案2】:

      逗号或点或反斜杠的正确正则表达式是[.,\\],所以在Java中是

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

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

      【讨论】:

        【解决方案3】:

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

         description.split(",.\\")
        

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

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

        【讨论】:

          猜你喜欢
          • 2012-06-04
          • 1970-01-01
          • 1970-01-01
          • 2011-06-25
          • 2012-04-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多