您的位置:首页 > 编程语言 > Java开发

java正则表达式学习

2012-04-13 21:45 411 查看
//		//System.out.println(s.getBytes().length);//一个汉字一个长度
//		if(s.matches("\\w[\\w\u4e00-\u9fa5]{1,6}"))
//			System.out.println("true");;
	
		
		/*
		 *匹配 
		 */
//		//[abc] 匹配长度为1的字符串:a或b或c
//		System.out.println("abc".matches("[ab]"));//false
//		System.out.println("b".matches("[abc]"));//true
//		//比如验证qq号:长度为5-15的数字,首位不能是0 -----> [1-9][0-9]{4,14}
		
		
		
		
		/*
		 *切割 
		 */
//		String s="zhangsan,lisi,wangwu";
//		for(String str:s.split(","))
//			System.out.println(str);
//		
//		s="zhangsan    lisi    wangwu";
//		for(String str:s.split(" +"))
//			System.out.println(str);
//		
//		s="zhangsan.lisi.wangwu";
//		for(String str:s.split("\\."))//此处注意
//			System.out.println(str);
//		zhangsan
//		lisi
//		wangwu

		
		//为了可以让规则的结果被重用可以将规则封装成一个组,用()完成,组的出现都有
		//编号,从1开始,0代表整个表达式,想要使用已有的组可以通过 \n(n就是组的编号)的形式来获取 
//		s="abcccdeffggggj";
//		for(String str:s.split("(.)\\1+"))//+ 1次或多次
//			System.out.println(str);//注意以下有空行
////		ab
////		de
////
////		j
//		System.out.println(s.replaceAll("(.)\\1+",""));//abdej
//		
		
		
//		/*
//		 *替换 replaceAll();replace()不支持正则表达式
//		 */
//		String s="abcccdeffggggj";//将重叠的字符换成单个字母zzzz->z $1获取前面的第一组
//		System.out.println(s.replaceAll("(.)\\1+", "$1"));//abcdefgj
		
		
//		
//		/*
//		 *获取 符合规则的的子串
//		 *1.将正则表达式封装成对象 Pattern
//		 *2.让正则对象和要操作的字符串相关联
//		 *3.关联后,获取正则匹配引擎
//		 *4.通过引擎对符合规则的子串进行操作,比如取出
//		 *
//		 *String中的一些方法就是封装好上面的,但是功能较为单一
//		 */
//		String s="hello ni hao piao liangabc";
//		String reg="[a-z]{3}";
//		Pattern pattern=Pattern.compile(reg);//封装成对象
//		Matcher match=pattern.matcher(s);//关联
//		
//		match.find();//boolean 相当于迭代器
//		System.out.println(match.group());//获取匹配后的结果 hel
//		
//		while(match.find()){
//			System.out.println(match.group());
//			//match.start();
//			//match.end();
//		}
////		hao
////		pia
////		lia
////		nga

比如,网页爬虫:

//import java.io.BufferedReader;
//import java.io.InputStreamReader;
//import java.net.URL;
//import java.net.URLConnection;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//public class Test {
//
//	
//	public static void main(String[] args) throws Exception {
//		URL url=new URL("http://172.76.99.99/demo/index.jsp");
//		URLConnection conn=url.openConnection();
//		BufferedReader buf=new BufferedReader(new InputStreamReader(conn.getInputStream()));
//		String line=null;
//		String mailreg="\\w+@\\w+(\\.\\w+)+";
//		Pattern p=Pattern.compile(mailreg);
//		
//		while((line=buf.readLine())!=null){
//			Matcher m=p.matcher(line);
//			while(m.find())
//				System.out.println(m.group());
//		}
//	}
//
//}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: