【发布时间】:2016-12-12 16:27:35
【问题描述】:
我正在尝试编写一个正则表达式来替换电话号码中的所有无效字符:
电话号码示例:
- +36 00 211 1111 -> +36002111111
- +49 03 691 4193 -> +49036914193
- +36 00 211 1111 -> +36002111111
- 06 78 90 12 34 -> 0678901234
只有当它是字符串中的第一个字符并且其余的只有数字类型时,正则表达式才应该允许使用“+”号[0-9]
这是我当前的正则表达式:
phone = phone.replaceAll("[/(?<!^)\+|[^\d+]+//g]", "");
【问题讨论】:
-
您当前的正则表达式如何失败?难道那些 outer
[..]没有明显的用途吗? (如果 Java 的正则表达式与常规正则表达式类似,它们会将 所有内容 放在“一个字符”集中。) -
我会使用
.replaceAll("^(\\+)|\\D+", "$1")
标签: java regex phone-number