有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java正则表达式在两位数后的字符串上拆分

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

范例

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) 个答案

  1. # 1 楼答案

    您可以使用这个负lookback正则表达式,而不是split从您的输入中获取所有有效的匹配项:

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

    RegEx Demo

    (?<!\.)是负向后查找,在前面的字符是点时断言失败

    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