在点 (.) 上拆分字符串,除非它出现在 Java 中使用正则表达式的分数中

Splitting a string on dot (.) except if it appears in a fraction using regex in Java

正如标题所说,我想使用 java 基于点的正则表达式拆分字符串,但前提是点出现在字母之间。

假设字符串是:

System.out.println(5.55);

我需要输出为

System
out
println(5.55);

像这样简单地使用前瞻和后视

System.out.println(Arrays.toString("System.out.println(5.55);".split("(?<=\D)\.(?=\D)")));

如需进一步了解他们实际做了什么,您可以通读 this

字母的后视和前视可能是您想要的。 DEMO

(?<=[a-zA-Z])\.(?=[a-zA-Z])

String content = "asdf.qweflkjasdf.qweflasdfasfd55.523";
Pattern p = Pattern.compile("(?<=[a-zA-Z])\.(?=[a-zA-Z])");           
System.out.println(p.matcher(content).replaceAll("\n"));

OUTPUT:
asdf
qweflkjasdf
qweflasdfasfd55.523