java正则表达式

  1.         String regex = "<a>(.*?)</a>";              // 非贪婪模式  
  2.         String regex = "<a>(.*)</a>";               // 贪婪模式 

  appendReplacement(StringBuffer sb, String replacement) 将当前匹配子串替换为指
定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个
StringBuffer对象里,而appendTail(StringBuffer sb) 方法则将最后一次匹配工作后
剩余的字符串添加到一个StringBuffer对象里

  "abc".matches("...");
        "a8729a".replaceAll("//d", "-");两个反斜杠代表正则表达式,一个反斜杠代表反义
        Pattern p = Pattern.compile("[a-z]{3}");a到z的三个字符
        Matcher m = p.matcher("fgh");
        boolean b = m.matches());
        b = "fgha".matches("[a-z]{3}");

          //初步认识. * + ?
.代表一个字符,*代表0个或者多个,+代表一个或者多个,?代表0个或者1个
[0-9]代表代表数字0到9.//d{1,3}数字出现1到3次
&&代表交集 |代表或者
        /*
        p("a".matches("."));
        p("aa".matches("aa"));
        p("aaaa".matches("a*"));
        p("aaaa".matches("a+"));
        p("".matches("a*"));
        p("aaaa".matches("a?"));
        p("".matches("a?"));
        p("a".matches("a?"));
        p("214523145234532".matches("//d{3,100}"));
        p("192.168.0.aaa".matches("//d{1,3}//.//d{1,3}//.//d{1,3}//.//d{1,3}"));
        p("192".matches("[0-2][0-9][0-9]"));
       
         //范围
        /*
        p("a".matches("[abc]"));[abc]代表从abc之中任意一个
        p("a".matches("[^abc]"));[^abc]abc之外的字符
        p("A".matches("[a-zA-Z]"));a到z或者A到Z
        p("A".matches("[a-z]|[A-Z]"));同上
        p("A".matches("[a-z[A-Z]]"));同上
        p("R".matches("[A-Z&&[RFG]]"));A到Z并且是RFG中的任意字符
/t 间隔 ('/u0009')
/n 换行 ('/u000A')
/r 回车 ('/u000D')
/d 数字 等价于[0-9]
/D 非数字 等价于[^0-9]
/s 空白符号 [/t/n/x0B/f/r]
/S 非空白符号 [^/t/n/x0B/f/r]
/w 单独字符 [a-zA-Z_0-9]
/W 非单独字符 [^a-zA-Z_0-9]
        p(" /n/r/t".matches("//s{4}"));
        p(" ".matches("//S"));
        p("a_8".matches("//w{3}"));
        p("abc888&^%".matches("[a-z]{1,3}//d+[&^#%]+"));
        p("//".matches(""));

 //b单词边界
       $为限制结尾
       ^放在[]外面的意思代表开头
        p("hello sir".matches("^h.*"));
        p("hello sir".matches(".*ir$"));
        p("hello sir".matches("^h[a-z]{1,3}o//b.*"));
        p("hellosir".matches("^h[a-z]{1,3}o//b.*"));
        //whilte lines
        p(" /n".matches("^[//s&&[^//n]]*//n$"));

        //email
        //p("asdfasdfsafsf@dsdfsdf.com".matches("[//w[.-]]+@[//w[.-]]+//.[//w]+"));

        //matches find lookingAt
        /match匹配整串,find寻找子串,lookingAt从头找
        Pattern p = Pattern.compile("//d{3,5}");
        String s = "123-34345-234-00";
        Matcher m = p.matcher(s);
        p(m.matches());
        m.reset();
        p(m.find());
        p(m.start() + "-" + m.end());
        p(m.find());
        p(m.start() + "-" + m.end());
        p(m.find());
        p(m.start() + "-" + m.end());
        p(m.find());
        //p(m.start() + "-" + m.end());
        p(m.lookingAt());
        p(m.lookingAt());
        p(m.lookingAt());
        p(m.lookingAt());

        //replacement
        /*
        Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf");
        //String str  = m.replaceAll("JAVA");
        StringBuffer buf = new StringBuffer();
        int i=0;
        while(m.find()) {
            i++;
            if(i%2 == 0) {
                m.appendReplacement(buf, "java");
            } else {
                m.appendReplacement(buf, "JAVA");
            }
        }
        m.appendTail(buf);
        p(buf);


        //group
        有几个()就有几组
        Pattern p = Pattern.compile("(//d{3,5})([a-z]{2})");
        String s = "123aa-34345bb-234cc-00";
        Matcher m = p.matcher(s);
        while(m.find()) {
            p(m.group(1));
        }


        //qulifiers
        +
        Pattern p = Pattern.compile(".{3,10}+[0-9]");
        String s = "aaaa5bbbb68";
        Matcher m = p.matcher(s);
        if(m.find())
            p(m.start() + "-" + m.end());
        else
            p("not match!");
        */

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值