Библиотека libphonenumber не извлекает номера телефонов с префиксом +34 (0) - PullRequest
0 голосов
/ 29 января 2020

Я использую libphonenumber для извлечения номера телефона из заданной строки, но он не смог извлечь номера с префиксом "+34 (0)" (префикс +34 работает нормально). Он отлично работает с другими расширениями (ie: - +38 (0)). Похоже, что это связано с +34 в сочетании с (0) паттерном. Ниже приведен пример кода. Кто-нибудь испытывал это раньше?

String content = someString + "+34 (0)xxx - xxxxxx" + someString;
PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
Iterable<PhoneNumberMatch> intlNumbers = phoneNumberUtil.findNumbers(content, null);

Ответы [ 2 ]

2 голосов
/ 29 января 2020

Номера телефонов в Испании показывают, что 0 должно было быть 6 или 7. Я думаю, что я не живу в Испании.

2 голосов
/ 29 января 2020

Вы можете использовать метод parse, затем получить nationalNumber и countryCode

 public static void main(String[] args) throws NumberParseException {


    String content = "+34 (0)123 - 456789";
    PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
    PhoneNumber phoneNumber =phoneNumberUtil.parse(content, null);
    System.out.println("Phone Number  = "+phoneNumber.getNationalNumber());
    System.out.println("Country Code = "+phoneNumber.getCountryCode());


}

Результат

Номер телефона = 123456789

Код страны = 34

...