如何在50,000个HTML页面中查找电话号码?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (89)

你如何找到50,000个HTML页面的电话号码?

提问于
用户回答回答于
egrep "(([0-9]{1,2}.)?[0-9]{3}.[0-9]{3}.[0-9]{4})" . -R --include='*.html'
用户回答回答于

这是用Java做的。正则表达式是从这个论坛...

    final String regex = "[\\s](\\({0,1}\\d{3}\\){0,1}" +
            "[- \\.]\\d{3}[- \\.]\\d{4})|" +
            "(\\+\\d{2}-\\d{2,4}-\\d{3,4}-\\d{3,4})";
    final Pattern phonePattern = Pattern.compile(regex);

    /* The result set */
    Set<File> files = new HashSet<File>();

    File dir = new File("/initDirPath");
    if (!dir.isDirectory()) return;

    for (File file : dir.listFiles()) {
        if (file.isDirectory()) continue;

        BufferedReader reader = new BufferedReader(new FileReader(file));

        String line;
        boolean found = false;
        while ((line = reader.readLine()) != null 
                && !found) {

            if (found = phonePattern.matcher(line).find()) {
                files.add(file);
            }
        }
    }

    for (File file : files) {
        System.out.println(file.getAbsolutePath());
    }

扫码关注云+社区

领取腾讯云代金券