我已经知道这个号码可以很容易地从String中拆分。但我在正则表达式中遇到问题。我有这样的字符串,
Call Numbers:
US Toll Free: 1-866-394-4524
UK Toll Free: 08081681755
India Toll Free: 180030121212
Mobile Number: 04412345678
Mobile Number: 08012345678
Conference Bridge: 12345678
拨打您所在位置的拨入号码,并在提示时输入会议代码,然后按#
我想这样显示:
18663944524
08081681755
180030121212
04412345678
08012345678
123456789
任何答案都会有所帮助。
答案 0 :(得分:1)
final Pattern myPattern = Pattern.compile("[\\w\\s]+:\\s+([\\d\\-]+)?\\s*");
请注意([\\d\\-]+)
是一个群组,我们可以抓住它。
对此匹配应该有效:
String line = // the current line in the file..
Matcher matcher = myPattern.matcher(line);
if (matcher.matches()) {
String theNumber = matcher.group(1);
System.out.println("We matched!!!: " + theNumber);
}
答案 1 :(得分:0)
你可以尝试这样:
String phoneStr="US Toll Free: 1-866-394-4524";
Pattern p = Pattern.compile("(\\d+)");
Matcher m = p.matcher(phoneStr);
while(m.find()) {
System.out.print(phoneStr.group(1));
}
输出:
18663944524
来源:互联网。我在我的一个项目中使用了这段代码。我测试了你的所有输入,它工作正常。
答案 2 :(得分:0)
简单而肮脏的方法是用空的String
替换所有非数字字符,从返回的车厢中保存。
以下是一个例子:
// your original text
String text = "Call Numbers: \n" + "US Toll Free: 1-866-394-4524\n"
+ "UK Toll Free: 08081681755\n" + "India Toll Free: 180030121212\n"
+ "Mobile Number: 04412345678\n" + "Mobile Number: 08012345678\n\n" +
"Conference Bridge: 12345678";
// prints the replacement
System.out.println(text.replaceAll("[\\D&&[^\n]]", ""));
输出:
18663944524
08081681755
180030121212
04412345678
08012345678
12345678
请注意,此输出中仍有空格进行后处理,即第一个返回滑架和最后两行之间的双返回滑架。
答案 3 :(得分:0)
您可以在一行中删除所有不包含数字的行和所有非数字:
str = str.replaceAll("[ :a-zA-Z-]", "").replaceAll("(?m)^$\n", "");
这是一些测试代码:
String str = "Call Numbers: \n" + "US Toll Free: 1-866-394-4524\n"
+ "UK Toll Free: 08081681755\n" + "India Toll Free: 180030121212\n"
+ "Mobile Number: 04412345678\n" + "Mobile Number: 08012345678\n\n" +
"Conference Bridge: 12345678";
str = str.replaceAll("[ :a-zA-Z-]", "").replaceAll("(?m)^$\n", "");
System.out.println(":"+str);
输出(有空行):
18663944524
08081681755
180030121212
04412345678
08012345678
12345678
答案 4 :(得分:0)
您可以使用String.replaceAll
。这样做
str.replaceAll("\\D","");
\D
代表除数字之外的任何内容。
对于每个字符串str
,它通过用空字符串替换每个其他字符来返回str
中的所有数字。