Java номер телефона в формате regex - PullRequest
0 голосов
/ 24 декабря 2018

Я хочу создать регулярное выражение для следующих числовых форматов: + XXXXXXXXXX.+1 (XXX) хххххх, + х (ххх) -ххх-хххх, ххх-ххх-хххх, ххх-хххх и номер телефона:, телефон:, тел .: со всеми вышеуказанными форматами.Все с выводом xxxxxxxxxx

Ниже приведен фрагмент моего кода.

  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;
    }

Ответы [ 3 ]

0 голосов
/ 24 декабря 2018

Кажется, вы хотите удалить все не-цифры, так что просто сделайте это.Чтобы выбрать строки, сопоставьте те, которые имеют (как минимум) 10 цифр:

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

- это все, что вам нужно.

0 голосов
/ 24 декабря 2018

String pattern = "\ d {10} | (?: \ D {3} -) {2} \ d {4} | \ (\ d {3} \) \ d {3} -? \ D{4} ";

0 голосов
/ 24 декабря 2018

Попробуйте регулярное выражение ^(?:(?:Tel|Phone Number|Phone): )?(\+?\(?\d{3}\)?[-. ]\d{3}[-. ]\d{4})$.

Это позволит сопоставить номера телефонов с ключевыми словами Phone, Tel или Phone Number, а не с другими.

Группа захвата $1 чтобы получить номер телефона.

Regex

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...