正则表达式

		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,}")); //

结果:

true
true
false
true
false
true


说明:

\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()); //每次找都是从开头找
运行结果:
 
 
false
true
子串的位置在:0 --3
true
true



		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 灵活
			else
				m.appendReplacement(buf, "JAVA");
		}
		m.appendTail(buf);


HTML中的应用:

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

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

你可能感兴趣的:(正则表达式)