java正規表示式matcher,find的注意

2021-08-25 19:16:44 字數 514 閱讀 8824

正則很經常用,最近在開發碰到一些問題,提醒大家注意下。

乙個字串,要判斷是否是數字,可以0為頭

正確的做法:

pattern intpattern = pattern.compile("[0-9]+");

matcher m = intpattern.matcher("aaa010222");

system.out.print(m.matches());

返回false,因為m.matches()是整串匹配,如果是 0102222,則返回true

錯誤做法:

pattern intpattern = pattern.compile("[0-9]+");

matcher m = intpattern.matcher("aaaa10222");

system.out.print(m.find());

返回true,m.find() 會找某部分如果匹配就為完成,因此適合查詢某部分符合特徵。

正規表示式之Pattern與Matcher

pattern類 描述匹配模式。matcher類 具體的匹配器,依賴於pattern類提供的匹配模式。pattern類的建立 由於pattern的構造器私有,所以一般通過pattern類的靜態方法compile string regex 來獲得物件,該方法需要傳入乙個正規表示式的字串作為匹配規則。也...

Java正規表示式

正規表示式結構簡介 字元 x 字元 x 反斜槓 0n 十進位制數 0 n 7 0nn 十進位制數 0nn 0 n 7 0mnn 十進位制數 0mnn 0 m 3,0 n 7 xhh 十六進製制數 0xhh uhhhh 十六進製制數 0xhhhh t 製表符 u0009 n 換行符 u000a r 回...

Java正規表示式

方便查詢的東西 基本語法 轉義字元 in d d d 數字0 9 多少到多少 d 非數字 0 9 非 w 單詞字元 a za z0 9 a3 w 非單詞字元 w s 空白 如 n t 0 1次 1 n次 0 n次 必須是n次 大於等於n次 n demo 中文 u0391 uffe5 英文 a za ...