标签:
public class RegularExpression {
//字符串处理利器 //字符串查找,匹配,替换 //应该叫字符匹配 //parten//要符合的那种模式 //用这种模式匹配一个字符串后产生的结果 public static void main(String[] args) { //一个点代表任何一个字符 /*p("abc".matches("...")); //"\d"代表的是一位数字,两个反斜杠,一个代表转义字符 p("ab6878799999bf".replaceAll("\\d", "-")); //把一个正则表达式编译一下,编译以后放到模式里面,pattern代表字符串要被匹配的一个模式 //我匹配一个具有三个字符的字符串,这三个字符是a-z中的某个字母 []代表范围 Pattern p = Pattern.compile("[a-z]{3}"); //match表示我去匹配某一个字符串,匹配的结果放大matcher中 Matcher m = p.matcher("abc"); p(m.matches());*/ //初步认识. * + ? //a出现的次数是否为0个或多个 /*p("aaa".matches("a*")); //a出现的次数为1个或多个 p("aaa".matches("a+")); //a出现的次数为1个或0个 p("aaa".matches("a?")); p("".matches("a*")); p("".matches("a?"));*/ //X{n} exactlly n times //X{n,} at least n times //X{n,m} at least n times,but not more than m times /*p("2223434343436667".matches("\\d{3,100}")); //.是转意字符要用\\.代替 p("192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\..{1,3}")); p("192".matches("[0-2][0-9][0-9]"));*/ //中括号代表取这里面中的一个字符就可以了 /* p("a".matches("[abc]")); //小尖括号表示除了abc之外的其他字符都可以 p("j".matches("[^abc]")); p("A".matches("[a-zA-Z]")); p("A".matches("[a-zA-Z]")); //和上面的一样 p("A".matches("[a-z]|[A-Z]")); p("A".matches("[a-z[A-Z]]")); p("R".matches("[A-Z&&[RFG]]"));*/ // //"\s"代表空白字符( \t(tab)\n\x0b(backspace)\f\r(enter)),\S代表取反 \D也一样 //\w 代表单词的字符,数字字母下划线[a-zA-Z_0-9] /* p(" \n\r\t".matches("\\s{4}")); p(" ".matches("\\S")); p("a_8".matches("\\w{3}")); p("abd888&^%".matches("[a-z]{1,3}\\d+[&#^%]+")); p("\\".matches("\\\\")); //boundry p("hrifsff".matches("^h.*")); p("hellfo ir".matches(".*r$")); //\b word boundry p("hello ir".matches("^h[a-z]{1,3}o\\b.*")); p(" \n".matches("^[\\s&&[^\\n]]*\\n$")); //pratise p("aaa 8888c".matches(".*\\d{4}.")); p("aaa 8888c".matches(".*\\b\\d{4}."));*/ String s = "12345-123-43-3456"; Pattern p = Pattern.compile("\\d{3,5}"); Matcher m = p.matcher(s); //匹配整个字符串 // p(m.matches()); // m.reset(); //find sub string /* p(m.find()); p(m.start()+" "+m.end()); p(m.find()); p(m.find()); p(m.find());*/ //looking at 每次都从头上开始找 // p(m.lookingAt()); // p(m.lookingAt()); // p(m.lookingAt()); // p(m.lookingAt()); /* Pattern p1 = Pattern.compile("java",Pattern.CASE_INSENSITIVE); String _string = "java Java JAVA Ilove java You hate Java"; Matcher mm = p1.matcher(_string);*/ // while(mm.find()) { // p(mm.group()); // } // String _string1 = mm.replaceAll("JAVA"); // p(_string1); /* StringBuffer buf = new StringBuffer(); int i = 0; while(mm.find()) { i++; if(i%2 == 0) { mm.appendReplacement(buf, "****"); } else { mm.appendReplacement(buf, "----"); } } mm.appendTail(buf); p(buf);*/ //regular group ( Pattern p2 = Pattern.compile("(\\d{3,5})([a-z]{2})"); Matcher m2 = p2.matcher("12345fg--5456uu-234cc-00"); while(m2.find()) { p(m2.group(2)); } } public static void p(Object o) { System.out.println(o); }
标签:
原文地址:http://www.cnblogs.com/zhangkefan/p/5443691.html