1. 程式人生 > >java使用正則表示式從一長串字元中獲取一段特徵字串

java使用正則表示式從一長串字元中獲取一段特徵字串

只能說String工具類太強大,導致一直以來,幾乎沒怎麼用到過正則表示式,現在突然要用到,參考正則表示式語法,摸索一上午才搞出來。記錄分享一下,以免忘記

從一長串字元中,截取出邀請碼,我想很多人都遇到過。

		String s = "邀請您加入隨心購,自動搜尋淘寶天貓優惠券!先領券,再購物,更划算!\r\n" + 
				"-------------\r\n" + 
				"下載連結:https://dwz.cn/YMZudYNQ\r\n" + 
				"-------------\r\n" + 
				"複製這條∞資訊∞4573586∞\r\n" + 
				"開啟隨心購,註冊領取優惠券";
		
		Pattern pa = Pattern.compile("(?<=∞)([A-Za-z0-9]{7})+(?=∞)");
		Matcher ma = pa.matcher(s);
		while (ma.find()) {
		  System.out.println(ma.group(0));
		}

特徵為∞4573586∞  兩個∞ 符號之間的字元是不固定的,可以是任意數字和大小寫字母。

另外,如果是強制匹配完整的特徵,比如,就必須要以∞開頭和以∞結尾,中間7個任意字元。則又可以用

		String str= "∞4573586∞";
		System.out.println(str.matches("^∞+.{7}∞$"));

^ 以什麼開頭

$以什麼結尾

. 任意非轉義字元