首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能带到统一格式的电话。数

我怎样才能带到统一格式的电话。数
EN

Stack Overflow用户
提问于 2020-01-22 01:43:14
回答 1查看 36关注 0票数 0

我怎样才能带到统一格式的电话。数?仅使用正则表达式

可以是+79998887766或8999 8887766或8- 999 -888-77-66等。

但我只需要+7 999 888-77-66

代码语言:javascript
复制
public class Main {
    public static void main(String[] args) throws Exception {
        System.out.println("Input your phone number: ");
        Scanner in = new Scanner(System.in);
        String number = in.nextLine();

下一步是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-22 01:58:01

给定三种不同格式的手机号码,您可以将其重新格式化为您提到的常见格式+7 999 888-77-66,方法是首先使用以下正则表达式将号码捕获为五组数字,

代码语言:javascript
复制
^\D*(\d)\D*(\d{3})\D*(\d{3})\D*(\d{2})\D*(\d{2})\D*$

然后将其替换为

代码语言:javascript
复制
+$1 $2 $3-$4-$5

将号码恢复为所需格式。

Check this demo

Java代码演示

代码语言:javascript
复制
List<String> numbers = Arrays.asList("+79998887766", "8 999 8887766", "8-999-888-77-66");
    numbers.forEach(x -> {
        System.out.println(x + " --> " + x.replaceAll("^\\D*(\\d)\\D*(\\d{3})\\D*(\\d{3})\\D*(\\d{2})\\D*(\\d{2})\\D*$", "+$1 $2 $3-$4-$5"));
    });

输出,

代码语言:javascript
复制
+79998887766 --> +7 999 888-77-66
8 999 8887766 --> +8 999 888-77-66
8-999-888-77-66 --> +8 999 888-77-66
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59846543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档