1. 程式人生 > >Java正則表示式(筆記歸納)

Java正則表示式(筆記歸納)

public class Regex {
	//1、正則表示式:是有規則的一種表示式
	// 我們常用regex來表示正則表示式
	//	主要作用:
	//		通過一種有規則的字元模式,對 目標字串進行查詢、提取、替換、分割的作用
	//	典型的應用場景:校驗相關字元是否匹配規則:使用者名稱校驗、電話號碼校驗、郵箱校驗
	
	//2、正則表示式的語法
	//	一、邊界符號:
	//		^ -- 表示開始符號
	//		$ -- 表示結束符號
	//		\b -- 表示邊界符號
	//		\B -- 表示非邊界符號
	
	//	二、描述普通字元
	//		小寫字元:"abcdef..." --> [a-z]
	//		大寫字元:"ABCDEF..." --> [A-Z]
	//		數字:"0123456789" --> [0-9]
	//部分字元範圍,比如:表示a、b、c、d的範圍 --> [a-d]或者[abcd]
	
	//	三、轉義字元
	//	用法:\(反斜槓)加上特殊符號進行轉義
	//	(),\.,\',\?,\*
	//		.在正則表示式中表示匹配一個除了換行符之外的單字元,如果我們要進行描述.本身的話,需要用轉義寫法\.
	
	//	四、數量限定:
	//	{3} --> 表示3個
	//	{0,} --> 表示0到多個字元,作用相當於*
	//	{1,3} --> 表示1個到3個
	//	{1,} --> 表示1個到多個,作用相當於+
	// 表示最多3個的時候,寫法:{0,3},不能寫成{,3}
	
	//	五、或者 |
	//	"(a|b)c" --> 表示ac或者bc
	//	"(a|b)*c" --> 表示c之前跟了0個或者多個的a或者b,相當於a*c 或者 b*c  
	
	//	六、特殊字元. --> 表示匹配除了換行符(\n)之外的任何一個單字元
	//		如果要匹配“.”本身,要使用轉義寫法"\."
	
	//	七、方括號[] --> 表示某些字元允許在一個字串中的某一個特定位置出現
	//		"[ab]." --> 表示一個字串中有一個a或者b
	
	//	八、否定符[^] 
	//		不允許在字串中出現字元的表示方法,在方括號中用"^"表示不希望出現的字元,‘^’應該要放在括號首位
	
	//	九、() --> 標記一個子字串的開始和結束的位置,子字串可以獲取供以後使用,如果要匹配"("和")",應該用轉義寫法
	
	//	十、其他的一些間接的正則表示式的寫法:
	//		\w --> 匹配包括下劃線的任何單詞字元,等價於"[A-Za-z0-9_]"
	//		\W --> 匹配任何非單詞字元,等價於"[^A-Za-z0-9_]"
	//		\d --> 匹配一個數字字元,等價於[0-9]
	//		\D --> 匹配一個非數字字元,等價於[^0-9]
	
	//正則表示式在Java中的應用:
	//	JDK1.4版本之後,Java正式包含正則表示式的類庫:java.util.regex
	//		Pattern pttern物件是一個正則表示式經過編譯之後的表現形式
	//		Matcher 它依據pattern物件作為匹配模式對字串展開匹配檢查

	
	public static void main(String[] args) {
		
		//用法一:典型的呼叫順序
		String regex = "[a-zA-Z]+";
		String input = "Goktech2018";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(input);
			
		if (matcher.matches()) {
			System.out.println(input+"符合使用者名稱規則");
		} else {
			System.out.println(input+"不符合使用者名稱規則");	
		}
		
		//用法二:使用Pattern類中的matches方法直接匹配
		//	第一個引數:正則表示式規則
		//	第二個引數:目標字串
		boolean b = pattern.matches(regex, input);
		System.out.println(b);
		
		
	}
	
	
	
	
}