import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** * 提取指定字串中的电话和手机号码 * @author yeyong */
public class PickUpPhone {
private final static Pattern pattern = Pattern
.compile("(?<!\\d)(?:(?:1[357]\\d{9})|(?:0[1-9]\\d{1,2}-?\\d{7,8}))(?!\\d)");
/**
* * 提取text中的电话和手机号码 * @param text * @return
* */
public static String pickUp(String text) {
Matcher matcher = pattern.matcher(text);
StringBuffer bf = new StringBuffer(64);
while (matcher.find()) {
bf.append(matcher.group()).append(",");
}
int len = bf.length();
if (len > 0) {
bf.deleteCharAt(len - 1);
}
return bf.toString();
}
public static void main(String[] args) {
String text = "骗子的电话是13944447777和076812345678,13732680805 15151163228 13337846525银行帐号:2240755123456780 身份证:4744134123456789, 错误的号码139444477771(多了一位)";
String phones = PickUpPhone.pickUp(text);
System.out.println(phones);
}
// 输出: // 13944447777,076812345678,13732680805,15151163228,13337846525 } }
}