我有号码
1110000010
需要进行格式化,以便在前3个字符后面插入一个空格,在另外3个字符后插入另一个空格,使其看起来像:
111 000 0010
实现此目的的简单java正则表达式模式是什么?
答案 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
OR
String s = "1110000010000";
System.out.println(s.replaceAll("(?<=^(?:\\d{3}|\\d{6}))"," "));