我想从文本文件中检索电话号码。我正在尝试使用third party python version of google's phone number library。但它无法检索它们之间有空格的数字。 - “+91 - 9871127622”。
周围有什么办法吗?
如果没有,我想安装Google's original library of phone numbers 但我不知道如何安装并将其包含在我的代码中(没有提供说明)
我的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
答案 0 :(得分: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,但你也可以使用类似的方法。
更新,基于 Ole V.V。的评论:
public static String cleanup(String inputPhoneNumber) {
String cleanedUp = inputPhoneNumber.replaceAll("[^\\d]", "");
if(inputPhoneNumber.startsWith("+")){
return "+" + cleanedUp;
}
return cleanedUp;
}
希望这有帮助!