关于Pattern类与Matcher类介绍(三)

Pattern p1=Pattern.compile("a"); //指定正则表达式
		Matcher m1=p1.matcher("This is a plain text"); //指定要操作的字符串
		
		//find(),start(),end()方法都是非静态方法,故通过Matcher类的对象访问
		//Matcher类的find()方法查找,找到返回true,否则返回false
		//Matcher类的start()方法以整数返回找到的起始位置
		//Matcher类的end()方法以整数放回找到的结束位置
		//每次找到打印找到的起始位置和结束位置,位置从0开始,第一个“徐”前面的位置为0
		while(m1.find()){
			System.out.println("找到张三三,起始位置:"+m1.start(0)+",结束位置:"+m1.end());
		}
		
		//replaceFirst将m1中找到的p1指定的第一个张三三替换成李四四
		String result1=m1.replaceFirst("李四四");
		System.out.println(result1);
		
		//replaceAll将m1中找到的p1指定的所有张三三替换成李四四
		String result2=m1.replaceAll("李四四");
		System.out.println(result2);
		
		Pattern p2=Pattern.compile("Anna");
		Matcher m2=p2.matcher("Anna is female, Anna 有文化, Anna 有思想");
		
		//StringBuffer字符串类,如果一个字符串的内容经常更改,请使用StringBuffer类,而不是String类
		StringBuffer sb=new StringBuffer();
		//appendReplacement每次找到之后追加到指定的字符串cute
		while(m2.find()){
			m2.appendReplacement(sb, "纪晓岚"); //每次找到Anna后,替换成纪晓岚,然后将替换结果追加到字符串sb
			System.out.println(sb);
		}
		
		//appenTail方法把最后剩余的字符串追加到sb字符串上
		m2.appendTail(sb);
		System.out.println(sb);
输出结果:
找到张三三,起始位置:8,结束位置:9
找到张三三,起始位置:12,结束位置:13
This is 李四四 plain text
This is 李四四 pl李四四in text
纪晓岚
纪晓岚 is female, 纪晓岚
纪晓岚 is female, 纪晓岚 有文化, 纪晓岚
纪晓岚 is female, 纪晓岚 有文化, 纪晓岚 有思想

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页