使用正则表达式解析表 – Java

我正在解析以下AWS成本实例表:
m1.small    1   1   1.7     1 x 160    $0.044 per Hour
m1.medium   1   2   3.75    1 x 410    $0.087 per Hour
m1.large    2   4   7.5     2 x 420    $0.175 per Hour
m1.xlarge   4   8   15      4 x 420    $0.35 per Hour

有一个包含这些费用的文件:

input = new Scanner(file);
String[] values;
while (input.hasNextLine()) {
    String line = input.nextLine();
    values = line.split("\\s+"); // <-- not what I want...
    for (String v : values)
        System.out.println(v);
}

然而,这给了我:

m1.small
1
1
1.7
1
x
160
$0.044
per
Hour

这不是我想要的…更正的解析值(使用正确的正则表达式)将如下所示:

['m1.small','1','1.7','1 x 160','$0.044','per Hour']

为了获得正确的结果,正确的正则表达式是什么?可以假设该表将始终具有相同的模式.

分开一个更多的空间.空格必须出现在下面的上下文中.

数字 – 空间 – 不是“x”

要么

不是“x” – 空间 – 数字

values = line.split("(?<=\\d)\\s+(?=[^x])|(?<=[^x])\\s+(?=\\d)")));

相关文章

jquery.validate使用攻略(表单校验) 目录 jquery.validate...
/\s+/g和/\s/g的区别 正则表达式/\s+/g...
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母...
this.optional(element)的用法 this.optional(element)是jqu...
jQuery.validate 表单动态验证 实际上jQuery.validate提供了...
自定义验证之这能输入数字(包括小数 负数 ) &lt;script ...