java - 当且仅当前后字符不是 'dot' 时,如何在 'dot' 上拆分字符串

标签 java regex

给定以下字符串:

"foo.bar.baz"

使用 Java String split 可以很容易地在“点”上分割它:

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

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

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

最佳答案

这个正则表达式可以工作:

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

这个想法是使用负向先行仅在 "." 处进行分割,其后面或前面没有另一个点。

关于java - 当且仅当前后字符不是 'dot' 时,如何在 'dot' 上拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36560684/

相关文章:

java - 正在添加但未使用 Spring Boot : external messages. 属性

.net - RegEx - 取文本字符后面的所有数字字符

javascript - 使用 Javascript 通过正则表达式过滤数组

regex - 使用 Sed/awk/grep 或任何其他工具在 Linux 环境中提取子字符串

java - 如何在 Spring 集成中使用 JAVA 配置创建 http 出站网关?

java - 如何跟踪CCTV视频的人

java - 使用 shell bolt 构建 Storm 拓扑

java - ObjectInputStream 读取不正确

java - 如何编写java正则表达式来识别java函数?

regex - 如何识别给定的字符串是十六进制颜色格式