【发布时间】:2017-02-16 12:10:34
【问题描述】:
我想按以下格式格式化电话号码:
- 359878123456
- 0878123456
- 00359878123456
放置在包含以下格式的姓名和电话号码信息的文件中:
- DarkoT 00359878123456
以标准格式格式化,仅用于数字(忽略名称)。见下文:
- 达科T +359 87 2 123456
这适用于所有情况。
这就是我所在的位置。(我的正则表达式)
System.out.println(String.valueOf(inputLine).replaceAll("((\\+|00)359|0)(\\-|\\s)?8[7-9][2-9](\\-|\\s)?\\d{3}(\\s|\\-)?\\d{3}$", "($1)-\\$"));
我对展示位置感到困惑。请指教。
【问题讨论】:
-
您必须捕获数字,而不是分隔符。
-
试试
.replaceAll("^((?:\\+|00)?359|0)[-\\s]?(8[7-9][2-9])[-\\s]?(\\d{3})[-\\s]?(\\d{3})$", "$1 $2 $3 $4").replaceFirst("^00", "+")。见this Java demo。 -
另请注意,您的意思可能是
DarkoT +359