如果我有一个包含以下内容的字符串:This is 1 test 123-456-7890
我需要提取 1234567890 作为电话号码。我不想提取测试前的数字 1。
我如何在 Java 中使用正则表达式来做到这一点?
我知道一个方法,但我不确定它是否是最好的解决方案:
String inputString = "This is 1 test 123-456-7890";
string result = inputString.replaceAll("(\\d{3})-(\\d{3})-(\\d{4})","");
String phoneNumber = inputString.replace(result, "");
最佳答案
最好的标准方法是使用 libphonenumber .有一个 findNumbers你可以使用的功能。这是一个代码片段
public static void extractPhoneNumber(String input){
Iterator<PhoneNumberMatch> existsPhone=PhoneNumberUtil.getInstance().findNumbers(input, "IN").iterator();
while (existsPhone.hasNext()){
System.out.println("Phone == " + existsPhone.next().number());
}
}
关于java - 如何使用正则表达式提取字符串的电话号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9464323/