9、正则表达式

2019-06-20  本文已影响0人  浮生若梦OvO

注:
第0组(d(a(b))(c))
第1组 d(a(b))(c)
第2组 a(b)
第3组 b

一、正则表达式的概述和简单使用

二、正则表达式的规则字符

学习pattern类,了解规则:

三、正则表达式的功能

String s = "我...我我...我...我要学...学学...学学...编程" ;
           String ss = s.replaceAll( "\\.", "");
           String sss = ss.replaceAll( "(.)\\1+", "$1");
           System. out.println( sss);

举例:

public static void main(String[] args) {
          // // 把正则表达式编译成模式对象
          // Pattern p = Pattern.compile("a*b");
          // // 通过模式对象调用匹配方法获取到匹配器对象
          // Matcher m = p.matcher("aaaaab");
          // // 调动匹配器对象的判断功能
          // boolean b = m.matches();
          // System.out.println(b);

          // 这道题目我们还可以通过判断功能
          // String regex = "a*b";
          // String str = "aaaaab";
          // boolean flag = str.matches(regex);
          // System.out.println(flag);

          // 定义规则
          String regex = "\\b[a-z]{3}\\b";

          String str = "da jia zhu yi le, ming tian bu fang jia, xie xie!";
          // 想要获取3个字符组成的单词

          Pattern p = Pattern.compile(regex);
          Matcher m = p.matcher(str);
          // public boolean find()
          // 判断看是否存在有满足条件的子串
          // boolean flag = m.find();
          // System.out.println(flag);
          // //获取子串
          // //public String group()
          // String s = m.group();
          // System.out.println(s);
          while(m.find()){
               System.out.println(m.group());
          }
     }

四、综合练习

获取文件中的邮箱
步骤:
a:创建字符高效流读取数据
b:把读取到的每一行数据进行查找
c:把符合正则条件的字符串储存到集合中
d:遍历集合

public static void main(String[] args) throws IOException {
          // 通过字符输入流读取数据。
          BufferedReader br = new BufferedReader(new FileReader("mail.txt"));
          // 创建一个集合
          ArrayList<String> array = new ArrayList<String>();

          // 定义邮箱规则
          String regex = "\\w+@\\w{2,8}(\\.\\w{2,3})+";

          String line = null;
          while ((line = br.readLine()) != null) {
               Pattern p = Pattern.compile(regex);
               Matcher m = p.matcher(line);
               while (m.find()) {
                    array.add(m.group());
               }
          }

          // 遍历集合。
          for (String s : array) {
               System.out.println(s);
          }
     }
上一篇 下一篇

猜你喜欢

热点阅读