我有一个这样的数字:09123456789
。我希望将其格式化为:0912 345 6789
。我怎么能用正则表达式做什么?
答案 0 :(得分:1)
在大多数语言中,有比regex更好的方法。但是,如果必须使用正则表达式,则应该能够找到将匹配组插入输出的工具,并使用它来格式化结果。
例如,在Java中,您使用$N
来引用捕获组编号N
,即第一组$1
,第二组$2
,等等上。因此,使用两个空格重新格式化11位数字符串将如下所示:
String s = "09123456789";
String r = s.replaceAll("(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3");
正则表达式捕获4-3-4位数的组,然后$1 $2 $3
在组之间插入空格。