不应删除最后一个点(。)

时间:2016-04-29 04:55:38

标签: java regex

public static void main(String[] args) {


    String body = "Rs. 199.32.test";

    System.out.println(body);

    body = body.replaceAll("\\d+[,\\\\./-[0-9]*]*\\d*", "xxxxx");

    System.out.println(body);

    }

当前输出为Rs. xxxxxtest 期望输出为Rs. xxxxx.test

我无法更新使用正则表达式来获得所需的结果。我不想替换小数点后的最后一个点。

2 个答案:

答案 0 :(得分:3)

这将有效

String body = "Rs. 199.32.test";
System.out.println(body.replaceAll("(\\d+)(?:(?:\\.)(\\d+))?", "$1$2"));

<强> Ideone Demo

<强> Regex Demo

答案 1 :(得分:0)

你可以这样做。

public class Main {
  public static void main(String[] args) {
    String body = "Rs. 199.32.test";
    System.out.println(body);
    body = body.replaceAll(body.substring(0,body.lastIndexOf('.')), "xxxxx");
    System.out.println(body);
  }
}