zoukankan      html  css  js  c++  java
  • java 正则

    1. matches() 匹配全部

    Pattern p = Pattern.compile("reg");

    Matcher m = p.matcher("String");

    System.out.println(m.matches());

    2:(matches 和find不要一起用,用reset()吐出来) 

     find()匹配部分

    while(m.find()){

      SYstem.out.println(m.group());//group() 每次循环 find()匹配到的部分

    }

      replaceAll() 替代匹配的所有

         System.out.println(m.replaceAll("java"));

      比replaceAll()更灵活的替换appendReplacement(StringBuffer sb,String yourString);

      //把偶数index的java 替换为"猫叔";

        StringBuffer sb = new StringBuffer();
        int i=0;
        while(m.find()){
        i++;
        if(i%2==0){
        m.appendReplacement(sb, "猫叔");
        }
        }
        m.appendTail(sb);
        System.out.println(sb);

    3.更强大的分组()()式

    /*Pattern p2 = Pattern.compile("([\w[-._.]]+)(@[\w[\d]]+\.[\w]+)");
    Matcher m2 =p2.matcher("-newobj_1@163.com,newobj@163.com,1299291758@qq.com");
    while(m2.find()){
    System.out.println(m2.group(1));
    }*/

    4.实际应用(爬email)

    ...所有以上的内容如下:

    package first;

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class T1 {

    /**
    * @param args
    */
    public static void main(String[] args) {
    //认识s:space, w: [a-zA-Z_0-9] , d:[0-9]
    //System.out.println(" ".matches("\s{4}"));
    //System.out.println("hello sir".matches(".*sir$"));
    //System.out.println("newobj@163.com".matches("[\w[_.]]+@[\w[_.]]+\.[\w[_.]]+"));

    /*Pattern p = Pattern.compile("[\d]{3,5}");
    String tt = "123-2345-33333-00-12";
    Matcher m = p.matcher(tt);
    System.out.println(m.matches());
    m.reset();
    System.out.println(m.find());
    System.out.println(m.find());
    System.out.println(m.find());
    System.out.println(m.find());*/

    //看group(当前匹配的结果)以及repalceAll;
    Pattern p = Pattern.compile("java",Pattern.CASE_INSENSITIVE);
    String a = "I lova java ,he heats Java, hanmeimei love JAva too , and you about java ?";
    Matcher m = p.matcher(a);
    // while(m.find()){
    // System.out.println(m.group());
    // }
    //System.out.println(m.replaceAll("java"));

    //把偶数index的java 替换为"猫叔";
    /*StringBuffer sb = new StringBuffer();
    int i=0;
    while(m.find()){
    i++;
    if(i%2==0){
    m.appendReplacement(sb, "猫叔");
    }
    }
    m.appendTail(sb);
    System.out.println(sb);*/

    //看看更强大的group
    /*Pattern p2 = Pattern.compile("([\w[-._.]]+)(@[\w[\d]]+\.[\w]+)");
    Matcher m2 =p2.matcher("-newobj_1@163.com,newobj@163.com,1299291758@qq.com");
    while(m2.find()){
    System.out.println(m2.group(1));
    }*/
    //爬email
    BufferedReader bfr = null;
    try{
    bfr = new BufferedReader(new FileReader(new File("D:/大家留下email吧.htm")));
    String line ="";
    String myemail = "newobj@163.com";
    Pattern pemail = Pattern.compile("[\w_-]+@[\w\d]+\.[\w]+");
    Matcher meail = null;
    //meail = pemail.matcher(myemail);
    //System.out.println(meail.matches());
    while((line=bfr.readLine())!=null){
    meail = pemail.matcher(line);
    while(meail.find()){
    System.out.println(meail.group());
    }
    }
    }catch (Exception e) {
    e.printStackTrace();
    }finally{
    try {
    bfr.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

    }

      

  • 相关阅读:
    day 5
    Python学习(十三)—— 面向对象程序设计
    Python学习(十二)—— 常见模块
    Python学习(十一)—— 程序解耦、模块、包
    Python学习(十)—— 装饰器和函数闭包
    Python学习(八)——文件操作:读、写
    Python学习(七)——匿名函数、map函数、filter函数、reduce函数与其他内置函数
    Python学习(六)—— 函数、全局变量与局部变量
    Python学习(五)—— 集合和字符格式化
    Python学习(四)—— 列表和元组的类中方法
  • 原文地址:https://www.cnblogs.com/yanjunwu/p/3764067.html
Copyright © 2011-2022 走看看