java正则表达式模式用空格格式化数字

时间:2014-12-30 15:35:45

标签: java regex

我有号码

1110000010

需要进行格式化,以便在前3个字符后面插入一个空格,在另外3个字符后插入另一个空格,使其看起来像:

111 000 0010 

实现此目的的简单java正则表达式模式是什么?

2 个答案:

答案 0 :(得分:6)

如果它只需要2个空格,则捕获2个组并用空格将它们写回:

str = str.replaceFirst("(...)(...)", "$1 $2 ");

答案 1 :(得分:2)

使用捕获组和正面的前瞻断言,如下所示。

String s = "1110000010";
System.out.println(s.replaceAll("(\\d{3})(?=\\d{3})","$1 "));

上面的正则表达式只会捕获三位数,如果它后跟三位数。

输出:

111 000 0010

DEMO

OR

String s = "1110000010000";
System.out.println(s.replaceAll("(?<=^(?:\\d{3}|\\d{6}))"," "));