代码之家  ›  专栏  ›  技术社区  ›  posdef

在Java中理解正则表达式:拆分(“t”)与拆分(“\t”)-何时两者都工作,什么时候使用?

  •  30
  • posdef  · 技术社区  · 14 年前

    我最近发现我的代码中没有正确使用regex。以制表符分隔的字符串为例 str ,我一直在使用 str.split("\t") . 现在我意识到这是错误的,为了正确匹配标签,我应该使用 str.split("\\t") .

    然而,我偶然发现了这个事实,因为我在寻找其他东西的regex模式。你看,故障代码 split("\t") 在我的例子中一直工作得很好,现在我很困惑为什么如果声明一个regex来匹配tab字符是错误的,那么它会工作。因此,为了真正理解ReGEX如何在Java中处理,而不是仅仅将代码复制到Eclipse中,而不是真正关心它为什么工作…

    以类似的方式,我发现了一段不仅用制表符分隔而且用逗号分隔的文本。更清楚地说,我分析的以制表符分隔的列表有时包括“复合”项,它们看起来像: item1,item2,item3 为了简单起见,我想将它们作为单独的元素进行解析。在这种情况下,适当的regex表达式应该是: line.split("[\\t,]") 还是我也错了??

    事先谢谢,

    2 回复  |  直到 9 年前
        1
  •  41
  •   Gumbo    14 年前
        2
  •  0
  •   kenju    9 年前