在点 (.) 上拆分字符串,除非它出现在 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
正如标题所说,我想使用 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