Java 使用正则表达式在文本中查找电话号码
我有一个完整的文本字符串,我想找到所有的比利时手机号码 所以我写了这段代码:Java 使用正则表达式在文本中查找电话号码,java,regex,Java,Regex,我有一个完整的文本字符串,我想找到所有的比利时手机号码 所以我写了这段代码: Pattern cellPhoneRegex = Pattern.compile("^((\\+|00)32\\s?|0)4(60|[789]\\d)(\\s?\\d{2}){3}$"); List<String> cellPhoneList = new ArrayList<>(); Matcher cellPhoneMatches = cellPhoneRegex.matche
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);
Pattern-cellPhoneRegex=Pattern.compile(“^(\\++12400)32\\s?0)4(60[789]\\d)(\\s?\\d{2}){3}$”;
List cellPhoneList=新建ArrayList();
Matcher cellPhoneMatches=cellPhoneRegex.Matcher(“+32495715511”);
while(cellPhoneMatches.find()){
添加(cellPhoneMatches.group());
}
System.out.println(手机电话列表);
现在的问题是,当你运行这个,它匹配的电话号码。
但是当同一个数字出现在一个巨大的文本中时,它什么也找不到
对于此字符串“Tel:+32495715511”,没有匹配项
我不明白为什么它不匹配。试试这个
var telephone = /\(?s?+?32s?\)?s?[789]d{8,}/;
我以前没试过。正是第四只鸟说的。你是regex在寻找一个完全匹配的。正如在文本中一样,匹配必须以(^means在本例中以开头)和($means在本例中以结尾)匹配正则表达式的电话号码开头 尝试移除锚定
^
和$
var phone=“+327890005678”;电话。匹配(电话);天哪,我觉得自己太傻了。