无论格式如何,从文本文件中检索 Phone 数字
Retrieve Phone number from text file irrespective of format
我想从文本文件中检索 phone 个数字。我正在尝试使用 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
您可以使用正则表达式快速清除输入中不需要的字符。
我的正则表达式是这样的:[^\d]
。它匹配输入中的任何 non-digits。我正在用一个空字符串替换每个匹配的字符。所以,我们最后只剩下数字了。
这里有一些可以帮助您入门的内容:
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,但你也可以使用类似的方法。
Update, based on Ole V.V.'s comment:
public static String cleanup(String inputPhoneNumber) {
String cleanedUp = inputPhoneNumber.replaceAll("[^\d]", "");
if(inputPhoneNumber.startsWith("+")){
return "+" + cleanedUp;
}
return cleanedUp;
}
希望对您有所帮助!
我想从文本文件中检索 phone 个数字。我正在尝试使用 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
您可以使用正则表达式快速清除输入中不需要的字符。
我的正则表达式是这样的:[^\d]
。它匹配输入中的任何 non-digits。我正在用一个空字符串替换每个匹配的字符。所以,我们最后只剩下数字了。
这里有一些可以帮助您入门的内容:
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,但你也可以使用类似的方法。
Update, based on Ole V.V.'s comment:
public static String cleanup(String inputPhoneNumber) {
String cleanedUp = inputPhoneNumber.replaceAll("[^\d]", "");
if(inputPhoneNumber.startsWith("+")){
return "+" + cleanedUp;
}
return cleanedUp;
}
希望对您有所帮助!