如何通过删除前面的PIN码来通过网络抓取获取Regex唯一的联系号码?

时间:2016-11-18 04:42:52

标签: regex

public static void main(String[] args) throws Exception {
    Pattern cp1 =Pattern.compile("(\\(?\\+?\\d{1,3}\\)?[\\s-]+)?\\(?\\d{1,3}\\)?[\\s-]+\\d{3}[\\s-]?\\d{2}[\\s-]?\\d{2,}");
    Set<String> contacts = new HashSet<String>();
    Document doc = Jsoup.connect("http://www.ejrsearch.com/contact-us.html").ignoreHttpErrors(true).userAgent("Mozilla").timeout(0).get();
    Elements doc1 = doc.select("body");
    Matcher matcherc = cp1.matcher(doc1.text());
    while (matcherc.find()) {contacts.add(matcherc.group());}
    System.out.println("Contacts:"+contacts);}}

doc1.text()

  

菜单联系我们我们希望听到您的意见!如果你正在寻找你的   下一个位置或那个可以提供帮助的“高性能”球员   为您服务,请联系我们。 EJR搜索合作伙伴1440百老汇   23楼NY NY 10018 212-410-4141 info@ejrsearch.com版权所有2011,   EJR搜索。保留所有权利。

实际上,地址为

EJR Search Partners 1440 Broadway 23楼NY NY 10018
212-410-4141

输出:

  

联络人:[018 212-410-4141]。

但我只想通过避免密码来获取联系电话。

通过仅修改现有模式帮助我解决此问题。提前谢谢.. :))

1 个答案:

答案 0 :(得分:0)

一般正则表达式,用于匹配不同格式的电话号码:

(\(?\+?\d{1,3}\)?[\s-]+)?\(?\d{1,3}\)?[\s-]+\d{3}[\s-]?\d{2}[\s-]?\d{2,}

用于匹配问题中提供的文档中的电话号码的正则表达式:

[0-9-]{8,}