如果我有一个包含以下内容的字符串:这是1测试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, "");
解决方法:
以下代码将检查您提及的字符串中的电话号码并打印出来:
String str = "This is 1 test 123-456-7890";
Pattern pattern = Pattern.compile("\\d{3}-\\d{3}-\\d{4}");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println(matcher.group(0));
}
但是,正如其他答案所指出的那样,许多电话号码(特别是国际电话号码)与该模式不符.
标签:java,regex,string
来源: https://codeday.me/bug/20190711/1436116.html