JAVA正規表示式小總結

2021-06-26 07:37:21 字數 764 閱讀 8444

最近專案中正在做後台校驗,而後台校驗也基本都是使用正規表示式校驗,本文做一些粗略的總結。

1、字串長度:.,注意有乙個點在{}前,表示匹配所有。『{}』之前一定是乙個捕獲組,因此如果有其他篩選要求並且限制長度則為在總捕獲組的最後加上{}來限制長度。

2、如何表示不為abcd的任意乙個字元:([^abcd])*,使用^表示在不為內的任意字元;注意,常有人寫成([^a|b|c|d])*,裡邊的|不代表或者的意思,這裡指表示|這個字元本省。

3、如何表示字串中不含有adc或def等字串:((?!adc)(?!def).)* ,其中adc為且的關係;這裡有個小圓點的原因是:寫正規表示式需要記住的乙個重要原則就是正規表示式都是基於位校驗的,因此如果此處我們沒有小圓點來匹配位,這個正規表示式就是錯誤的。

4、如何表示多個限制條件:即多個限制條件且,使用多個捕獲組相連線即可,即使用多個()相連。如:如何保證字串中不存在adc、def且不存在雙引號、單引號、斜槓、尖括號等,且長度保證在40位以內:((?!adc)(?!def)([^\"'\\<])),就像之前說的{}之前需要乙個大的括號來作為乙個最終捕獲組;

5、如何匹配包含換行符等在內的特殊字元的所有字元:我之前寫的是這樣的:(.|//s),但是有一天測試居然告訴我當他真的用2000個字元來驗證的時候,這個直接導致程式異常了,經過多方驗證原來這是jdk的乙個bug,於是只能改用([//s//s]),這裡使用乙個小技巧,表示所有字元時用//s和//s代替,因為//s代表所有換行符 空格符等字元,而//s恰好有表示非換行符等,正好是乙個互補關係。

正規表示式小總結

1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的正實數 0 9 0 9...

正規表示式小總結

用一串特殊字元,可匹配符合相應規律的所有字串。字元代表 a,b,c,d 1,2,3,4 都是原意。匹配除換行符以外的任意字元 w匹配字母或數字或下劃線或漢字 s匹配任意的空白符 d匹配數字 b匹配單詞的開始或結束 匹配字串的開始 匹配字串的結束 w匹配任意不是字母,數字,下劃線,漢字的字元 s匹配任...

java正規表示式總結

由於最近在做乙個android的新聞客戶端,多次用到了正規表示式,因此總結下。因為在每條新聞瀏覽的listview裡需要新聞內容裡的,因此你需要抓取文章第一張 url位址,豆瓣的 格式是 提取html中imag的src內容 返回的值格式為 public string getimgstr string...