如何使用正则表达式格式化数字

时间:2016-06-07 13:48:52

标签: java regex string expression

我遇到涉及格式化数字的问题。在巴西,我们得到了一种名为“CPF”的文件,这是每个公民都有的一种个人身份证。

以下是正确格式化的公积金号码的示例:096.156.487-09

我正在尝试使用正则表达式来格式化包含CPF编号的字符串,但我很难接受它。我目前的代码是返回未格式化的数字。

例如:它应输出123.456.789-0,但我得到1234567890

这是我目前的代码:

    String cpf ="09551130401";
    cpf = cpf.replaceAll("(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})", "$1.$2.$3-$4");
    System.out.println(cpf);

1 个答案:

答案 0 :(得分:0)

我不确定我是否正确......但也许你正在寻找这种模式:

"(\\d{3})(\\d{3})(\\d{3})(\\d{2})"

并替换为$1.$2.$3-$4

Online Demo

完整代码:

String cpf ="09551130401";
cpf = cpf.replaceAll("(\\d{3})(\\d{3})(\\d{3})(\\d{2})", "$1.$2.$3-$4");
System.out.println(cpf);
//=> 095.511.304-01