我有一个包含一些分隔值的字符串:
1.95;1.99;1.78;10.9;11.45;10.5;25.95;26;45;21.2
Run Code Online (Sandbox Code Playgroud)
我想要实现的是分号每三次出现的分裂,所以我的结果String[]应该包含:
result[0] = "1.95;1.99;1.78";
result[1] = "10.9;11.45;10.5";
result[2] = "25.95;26;45";
result[3] = "21.2";
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试了几种正则表达式解决方案,但我能找到的只是找到半冒号之间的任何模式.例如:
(?<=^|;)[^;]*;?[^;]*;?[^;]*
Run Code Online (Sandbox Code Playgroud)
哪个匹配我想要的值,这样就无法使用split()或者我错过了什么?
不幸的是,我只能提供使用的模式,并且无法通过上述模式的结果添加一些循环.
String re = "(?<=\\G[^;]*;[^;]*;[^;]*);";
String text = "1.95;1.99;1.78;10.9;11.45;10.5;25.95;26;45;21.2";
String[] result = Pattern.compile(re).split(text);
Run Code Online (Sandbox Code Playgroud)
现在结果就是你想要的
提示:java正则表达式中的\G是一个边界匹配器^,它的意思是“上一个匹配的结束”
| 归档时间: |
|
| 查看次数: |
4297 次 |
| 最近记录: |