黑马程序员——正则表达式

 ------- <a href="http://www.itheima.com" target="blank">android培训</a>

正则表达式常见操作:


1、匹配:String  matches方法。用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false。 


2、切割:String split(); 


3、替换:String replaceAll(regex,str);如果regex中有定义组,可以在第二参数中通过$符号获取正则表达
式中的已有的组。 


4、获取  将字符串中的符合规则的子串取出
步骤:1、将正则表达式封装成对象
 2、让正则对象和要操作的字符串相关联
 3、关联后,获取正则匹配引擎

 4、通过引擎对符合规则的子串进行操作,如取出

/*
	正则表达式练习
*/
import java.util.*;

class Demo03
{
	public static void main(String []args){
		//practise1();
		//practise2();
		practise3();
	}

	/*
		练习一:有人结巴,说出了一串重复的数据,请你修正正确

		"我我...我我...我要...要要...要要...学学...学学...学编...编编...编编编....程...程程"
		
		思考方式:
			1、如果想知道是否对错,用匹配
			2、如果把一个字符串变成另一个字符串用替换
			3、如果要按照指定的方式将一个字符编程多个字符串,用切割:规则以外的子串
			4、拿到符合要求的字符串,用获取:规则以内的子串
	*/
	public static void	practise1(){
		String s = "我我...我我...我要...要要...要要...学学...学学...学编...编编...编编编....程...程程";
		String reg1 = "\\.";
		s = s.replaceAll(reg1, "");
		sop(s);

		String reg2 = "(.)\\1+";
		sop(s.replaceAll(reg2, "$1"));
	}

	/*
		练习二 将IP地址进行地址段顺序排序
			192.8.1.254 2.3.68.2  66.24.65.128 172.28.132.203

	*/
	public static void practise2(){
		String s = "192.8.1.254  2.3.68.2 66.24.65.128 172.28.132.203";

		//在所有的IP前面加两个零, 保证每段至少为三位
		s = s.replaceAll("(\\d+)", "00$1"); sop(s);

		//每段只保留两位
		s = s.replaceAll("0*(\\d{3})", "$1"); sop(s);

		//以空格进行切割 
		String ch[] = s.split(" +");

		//进行排序  Arrays.sort();
		TreeSet<String> ts = new TreeSet<String>();
		for(String ss : ch){
			ts.add(ss);
		}

		//取出多余的零
		for(String str : ts){
			sop(str.replaceAll("0*(\\d+)", "$1"));
		}
	}

	/*
		练习三: 对邮件地址进行验证 practise
	*/
	public static void practise3(){
		String s = "[email protected]";
		String reg = "\\w+@\\w+(\\.\\w+)+";
		System.out.println(s.matches(reg));
	}

	public static void sop(String s){
		System.out.println(s);
	}
}

 <a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------


猜你喜欢

转载自blog.csdn.net/a1106900429/article/details/40025575