我在一个字符串中有一个完整的文本,我想找到所有比利时手机号码。
所以我写了这段代码:
Pattern cellPhoneRegex = Pattern.compile("^((\\+|00)32\\s?|0)4(60|[789]\\d)(\\s?\\d{2}){3}$");
List<String> cellPhoneList = new ArrayList<>();
Matcher cellPhoneMatches = cellPhoneRegex.matcher("+32495715511");
while (cellPhoneMatches.find()) {
cellPhoneList.add(cellPhoneMatches.group());
}
System.out.println(cellPhoneList);
现在的问题是,运行此命令时,它与电话号码匹配。 但是,当相同的数字出现在大文本中时,它什么也找不到。
对于此字符串“ Tel:+32495715511”,没有匹配项。
我不明白为什么它不匹配。
答案 0 :(得分:3)
@Thefourthbird所说的正是。您是正则表达式正在寻找完全匹配的商品。如要匹配的文本中的电话号码必须以正则表达式匹配的电话号码(在此示例中,^开头)在此示例中,$结束(在本示例中为$开头)。
答案 1 :(得分:0)
尝试使用此
var telephone = /\(?s?+?32s?\)?s?[789]d{8,}/;
我以前没有尝试过。