正如标题所说,我想写一个正则表达式 r 使得Splitter.onPattern(r).splitToList("a.b.c.d[e.f.g]");
结果是
[a, b, c, d[e.f.g]]
我一直在尝试使其正确,但无法弄清楚。我以为"\\.((?!\\[)*)\\]*"
应该有效(匹配任何后跟不包含以 ']' 结尾的字符串的点),但由于某种原因它仍然在所有点上拆分。
最佳答案
对于您显示的样本,请尝试以下操作,同时假设 [
和 ]
是平衡的而不是嵌套的。
\.(?![^[]*])
这是Online demo of regex说明:匹配后面没有 0 个或多个字符且没有 [ 后跟 ] 的点。
关于java - 正则表达式在不在括号内的点上拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66481137/