正则表达式

来源:互联网 发布:网易域名管理平台 编辑:程序博客网 时间:2024/05/19 00:40
p("192".matches("[0-2][0-9][0-9]"));p("a".matches("[abc]")); //abc中的一个即可p("a".matches("[^abc]")); //取反,除了abc之外的p("A".matches("[a-zA-Z]"));p("R".matches("[A-Z]&&[RPG]")); //取并集p("192.aaaAAA".matches("\\d{3,10}.[a-zA-z]{1,}")); //

结果:

truetruefalsetruefalsetrue


说明:

\d数字:[0-9]\D非数字: [^0-9]\s空白字符:[ \t\n\x0B\f\r]\S非空白字符:[^\s]\w单词字符:[a-zA-Z_0-9]\W非单词字符:[^\w]

p("\\".matches("\\\\"));p("g_o".matches("\\w{3}"));p(" ".matches("\\s"));p(" \n\r\t".matches("\\s{4}"));



练习3:

Pattern p = Pattern.compile("\\d{3,5}");String s = "123-45657-2345-00";Matcher m = p.matcher(s);p(m.matches()); //匹配的是整个字符串m.reset(); //把吃掉的吐出来p(m.find()); //找子串p("子串的位置在:"+m.start()+" --"+m.end());p(m.find());p(m.lookingAt()); //每次找都是从开头找
运行结果:
falsetrue子串的位置在:0 --3truetrue



Pattern p = Pattern.compile("java",Pattern.CASE_INSENSITIVE);//大小写不敏感的Matcher m = p.matcher("java Java JAVA YOU HATE JAVA i love jAVA tail aaaa");//while(m.find()){//p(m.group());  // 都是Matcher来操作的//}StringBuffer buf = new StringBuffer();int i=0;while(m.find()){i++;if(i%2 == 0)m.appendReplacement(buf, "java"); //此方法比 replaceAll 灵活elsem.appendReplacement(buf, "JAVA");}m.appendTail(buf);


HTML中的应用:

把所有的 <br> <br /> 等替换成回车

html = html.replaceAll("<br\\s*/*>", "\n");

原创粉丝点击