기술나눔

J023_정규식을 사용한 정보 크롤링

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. 요구사항 설명

다음 텍스트에서 전화번호, 이메일 주소, 유선전화 번호, 핫라인을 추출해 주세요.

Java를 배우려면 Black Horse Programmers로 오세요. 전화: 18512566765, 이메일: [email protected], 유선 전화: 010-989512356, 이메일: [email protected] 핫라인: 400-618-9090, 400-618-4000, 4006184000, 4006180909.

2. 코드 구현

  1. package com.itheima.regex;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4. public class TestCase2 {
  5. public static void main(String[] args) {
  6. method1();
  7. }
  8. public static void method1(){
  9. //文本
  10. String data = "来黑马程序员学习Java,n" +
  11. " 电话:18512566758,18354678765;n" +
  12. " 或者联系邮箱:[email protected];n" +
  13. " 座机电话:010365178955,010-989512356;n" +
  14. " 邮箱[email protected],n" +
  15. " 邮箱2:[email protected];n" +
  16. " 热线电话:400-618-9090,400-618-4000,4006184000,4006180909。";
  17. //定义爬取规则
  18. String regex = "(1[3-9]\d{9})|(0\d{2,7}-?[1-9]\d{4,19})|\w{2,}@\w{2,20}(\.\w{2,10}){1,2}" +
  19. "|(400-?\d{3,7}-?\d{3,7})";
  20. //把正则表达式封装成一个pattern对象
  21. Pattern pattern = Pattern.compile(regex);
  22. //通过pattern对象去获取查找内容的匹配器对象
  23. Matcher matcher = pattern.matcher(data);
  24. //定义循环开始爬取信息
  25. while (matcher.find()) {
  26. String result = matcher.group();
  27. System.out.println(result);
  28. }
  29. }
  30. }