Java基础_正则表达

做帐号判定的时候,如果挨个判断就有点麻烦 。

单个字符判断

		String string1 = "[abc]"; //中括号表示单个字符,不能匹配字符串
		System.out.println("a".matches(string1)); //true
		System.out.println("ab".matches(string1)); //false

		String string2 = "[^abc]";//^是取反
		System.out.println("a".matches(string2));//false
		System.out.println("d".matches(string2));//true

		String string3= "[a-zA-Z]";//a-Z 26*2个字符
		System.out.println("a".matches(string3));//true
		System.out.println("dc".matches(string3));//false

		String string4= "[a-c[m-z]]";//a-Z 26*2个字符
		System.out.println("a".matches(string4));//true
		System.out.println("d".matches(string4));//false

		String string5= "[a-z&&[def]]";//a-z 与 def的交集 ,即def
		System.out.println("a".matches(string5));//false
		System.out.println("d".matches(string5));//true
		
		String string6= "[a-z&&[^def]]";//a-z 与 def取反的交集 ,即除了def
		System.out.println("a".matches(string6));//true
		System.out.println("d".matches(string6));//false

预定义字符判断

		//.表示任意字符 ,一个点表示任意一个字符,两个点代表两个 。和[]区别,[]无论多少都是一个字符
		String string1="..";
		System.out.println("aa".matches(string1));//true
		System.out.println("?".matches(string1));//false
		
		//  d表示0-9 的单个数字,但是是转义字符,所以需要两个
		String string2="\d";
		System.out.println("10".matches(string2));//false
		System.out.println("3".matches(string2));//true

		//  D表示除了0-9的单个字符
		String string3="\D";
		System.out.println("a".matches(string3));//true
		System.out.println("3".matches(string3));//false
		
		//  s表示空白字符  	
xOBf
		String string4="\s";
		System.out.println(" ".matches(string4));//true
		System.out.println("3".matches(string4));//false
		
		//  S表示非空白字符  	
xOBf
		String string5="\S";
		System.out.println(" ".matches(string5));//false
		System.out.println("3".matches(string5));//true
		
		//  w表示[a-zA-Z0-9]		.大写W就不演示了
		String string6="\S";
		System.out.println(" ".matches(string6));//false
		System.out.println("3".matches(string6));//true

数量次数判断

		//?代表一次或者一次也没有,与[]连用就是abc针对单个字符一个或者一个都不出现
		String string1="[abc]?";
		System.out.println("a".matches(string1));//true
		System.out.println("".matches(string1));//true
		System.out.println(" ".matches(string1));//false	
		
		//*代表0次到多次出现	,这里可以对字符串进行判断
		String string2="[abc]*";
		System.out.println("aaaaa".matches(string2));//true 
		System.out.println("".matches(string2));//true
		System.out.println("abcd".matches(string2));//false
		System.out.println("abc".matches(string2));//true
		
		//+代表1次到多次出现,可以对字符串判断
		String string3="[abc]+";
		System.out.println("aaaaa".matches(string3));//true
		System.out.println("".matches(string3));//false
		System.out.println("abcd".matches(string3));//false
		System.out.println("abc".matches(string3));//true		
		
		//{n}代表恰好N次 , 还有{n,m} ,至少n次不超过m次,还有{n,} ,至少n次
		String string4="[abc]{3}";
		System.out.println("abc".matches(string4));//true
		System.out.println("a".matches(string4));//false
		System.out.println("abcd".matches(string4));//false

字符串切割

		
		String string = "abcd" ;
		String regex ="";//拿空格去切割字符串,生成数组
		String[] arr =string.split(regex);
		for(int i=0;i<string.length();i++){
			System.out.println(arr[i]);
		} // a b c d 
原文地址:https://www.cnblogs.com/lyxin/p/6013234.html