正则表达式在2位数后分裂为字符串

时间:2016-12-08 15:40:16

标签: java regex string

如何将字符串拆分为有效货币或双重格式。我知道所有值只有2位小数。

示例

String line = "3850.439.00 0.00 260.00 23";

因此3850.439.00不正确,需要拆分。

我有这个

String[] arr = line.split("\\d+.(\\.\\d{2})");

但结果不正确 - 9.00 0.00 23

必填结果为3850.43 9.00 0.00 260.00 23

1 个答案:

答案 0 :(得分:5)

而不是split你可以使用这个负面的lookbehind正则表达式从你的输入中获得所有有效的匹配:

(?<!\.)\d+(?:\.\d{2})?

RegEx Demo

(?<!\.)在前面的字符是DOT时声明失败是负面的后视。

Java代码:

final String regex = "(?<!\\.)\\d+(?:\\.\\d{2})?";
final String string = "3850.439.00 0.00 260.00 23";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);

while (matcher.find()) {
    System.out.println("Full match: " + matcher.group(0));
}

regex reference for Java