java使用正則表示式從一長串字元中獲取一段特徵字串
阿新 • • 發佈:2018-11-09
只能說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}∞$"));
^ 以什麼開頭
$以什麼結尾
. 任意非轉義字元