Обмен технологиями

J023_Сканирование информации с помощью регулярных выражений

2024-07-12

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

1. Описание требований

Пожалуйста, извлеките номер телефона, адрес электронной почты, номер стационарного телефона и горячую линию из следующего текста:

Приходите в Black Horse Programmers, чтобы изучить Java. Телефон: 18512566758, 18354678765; или контактный адрес электронной почты: [email protected]; стационарный телефон: 010365178955, 010-989512356; электронная почта [email protected], адрес электронной почты 2: [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. }