如何在点上分割字符串'如果且仅当前后的char不是' dot'

时间:2016-04-11 22:52:16

标签: java regex

给出以下字符串:

"foo.bar.baz"

它可以拆分在'点'使用Java String split很容易:

split("foo.bar.baz", "\.")

但是,如果我想保留点,如果它后面紧跟另一个点,那么正则表达式是什么:

"foo.bar.baz..raz..daz.faz" → "foo" "bar" "baz..raz..daz" "faz"

1 个答案:

答案 0 :(得分:7)

这个正则表达式可行:

s.split("(?<!\\.)\\.(?!\\.)");  

我们的想法是使用否定前瞻只能在"."处拆分,而不是跟随或先于另一个点。