Получить номер телефона из текстового файла независимо от формата
Я хочу получить телефонные номера из текстового файла. Я пытаюсь использовать стороннюю версию Python библиотеки телефонных номеров Google. Но он не может получить числа с пробелами между ними, например, - "+91 - 9871127622".
Есть ли способ обойти это?
Если нет, я хотел установить исходную библиотеку телефонных номеров Google, но не знаю, как ее установить, и включить ее в свой код (никаких инструкций не предусмотрено).
Мой код Python выглядит следующим образом:
#!usr/bin/env python
import phonenumbers
import os
import re
import sys
file_name = sys.argv[1]
fp =open(file_name,"r")
for line in fp:
for match in phonenumbers.PhoneNumberMatcher(line,None):
print match
1 ответ
Вы можете использовать регулярное выражение для быстрой очистки нежелательных символов в вашем вводе.
Мое регулярное выражение таково: [^\\d]
, Соответствует любым не цифрам на входе. Я заменяю каждый соответствующий символ пустой строкой. Таким образом, мы останемся только с цифрами в конце.
Вот кое-что, чтобы вы начали:
public class CleanPhoneNumber {
public static void main(String[] args) {
String inputPhoneNumber = "+91 – 9871127622";
String validPhoneNumber = cleanup(inputPhoneNumber);
System.out.println(validPhoneNumber );
}
public static String cleanup(String inputPhoneNumber) {
return inputPhoneNumber.replaceAll("[^\\d]", "");
}
}
Вы можете дополнительно улучшить регулярное выражение.
PS: я не в Python, но вы также можете использовать аналогичный подход там.
Обновление на основе комментария Оле В.В.:
public static String cleanup(String inputPhoneNumber) {
String cleanedUp = inputPhoneNumber.replaceAll("[^\\d]", "");
if(inputPhoneNumber.startsWith("+")){
return "+" + cleanedUp;
}
return cleanedUp;
}
Надеюсь это поможет!