【问题标题】:Java phone Number format regexJava 电话号码格式正则表达式
【发布时间】:2019-05-23 08:36:44
【问题描述】:

我想为以下数字格式创建一个正则表达式: +XXXXXXXXXX。 +1(XXX)xxxxxx, +x(xxx)-xxx-xxxx, xxx-xxx-xxxx, xxx-xxxx 和电话号码:,电话:,电话: 以上所有格式。都是xxxxxxxxx的输出

下面是我的代码的 sn-p。

  public static String getPhoneNumber() // returns the phone number formatted as a sequence of digits
    {

        String regex = "^\\(?([0-9]{3})\\)?[-.\\s]?([0-9]{3})[-.\\s]?([0-9]{4})(?:Tel:)$";
        Pattern pattern = Pattern.compile(regex);
        for (int i = 0; i < line.length(); i++) 
        {
              //if phone number format includes -, . , spaces, + sign in front
              if (line.matches("[+]?\\d?[- .]?(\\([0-9]\\d{2}\\)|[0-9]\\d{2})[- .]?\\d{3}[- .]?\\d{4}$")) {
                phoneNumber = line.replaceAll("[^\\d.]", "").replace("-", "").replace(".", "").replace(" ", "").replace("(", "").replace(")", "")
                        .replace("+", "");

              }
              else
              {
                  getEmailAddress();
              }
                  }
        //System.out.println(phoneNumber);
        return phoneNumber;
    }

【问题讨论】:

  • .replaceAll("[^\\d]", "") 应该删除 所有 个非数字字符,因此不需要额外的 replace() 方法(注意:正则表达式中没有点)。
  • 看起来你有一个合理的开始。你有什么困难?
  • 问题是我让它识别上述不同格式的数字。除非字符串之前有“电话:”或类似的东西,否则我无法弄清楚如何让它接受它仍然是一个电话号码。它应该能够确定我是用该线路作为电话号码而不是标记为传真的东西。
  • 你能展示一些示例字符串吗
  • 示例输入字符串包括:+111-111-1111,电话:111-111-1111,电话号码:(111)-111-1111 等。

标签: java regex match


【解决方案1】:

试试正则表达式^(?:(?:Tel|Phone Number|Phone): )?(\+?\(?\d{3}\)?[-. ]\d{3}[-. ]\d{4})$

这将匹配带有关键字PhoneTelPhone Number 的电话号码,而不是其他关键字。

捕获群组$1获取电话号码。

Regex

【讨论】:

    【解决方案2】:

    您似乎想删除所有非数字,所以就这样做吧。要选择行,请匹配那些(至少)10 位数的行:

    if (line.matches("(\\D*\\d){10}.*"))) {
        phoneNumber = line.replaceAll("\\D", "");
    }
    

    就是你所需要的。

    【讨论】:

      【解决方案3】:

      字符串模式 = "\d{10}|(?:\d{3}-){2}\d{4}|\(\d{3}\)\d{3}-?\d {4}";

      【讨论】:

        猜你喜欢
        • 2016-02-02
        • 2016-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-23
        • 2014-02-15
        • 1970-01-01
        相关资源
        最近更新 更多