java - 正则表达式在不在括号内的点上拆分字符串

标签 java regex

正如标题所说,我想写一个正则表达式 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/

相关文章:

java - 不考虑空格的正则表达式

ReGex 匹配精确的单词,忽略包含它作为子字符串的单词?

javascript正则表达式匹配

c++ - 使用 <tr1/regex> 中的 regex_replace 函数时出错

java - 如何使用 Maven 构建将常规文件夹添加到我的存储库?

java - org.hibernate.AnnotationException : Unable to create unique key constraint

java - Volley 请求重试策略不考虑超时

java - 如何在 Spring Boot 中验证 "MM/dd/yyyy"格式的日期?

javascript - 将 Ruby 正则表达式转换为 JavaScript

java - Jackson ObjectMapper 仅已知接口(interface)