我最近发现我的代码中没有正确使用regex。以制表符分隔的字符串为例
str
,我一直在使用
str.split("\t")
. 现在我意识到这是错误的,为了正确匹配标签,我应该使用
str.split("\\t")
.
然而,我偶然发现了这个事实,因为我在寻找其他东西的regex模式。你看,故障代码
split("\t")
在我的例子中一直工作得很好,现在我很困惑为什么如果声明一个regex来匹配tab字符是错误的,那么它会工作。因此,为了真正理解ReGEX如何在Java中处理,而不是仅仅将代码复制到Eclipse中,而不是真正关心它为什么工作…
以类似的方式,我发现了一段不仅用制表符分隔而且用逗号分隔的文本。更清楚地说,我分析的以制表符分隔的列表有时包括“复合”项,它们看起来像:
item1,item2,item3
为了简单起见,我想将它们作为单独的元素进行解析。在这种情况下,适当的regex表达式应该是:
line.split("[\\t,]")
还是我也错了??
事先谢谢,