Java的正則表達式,你瞭解多少?

正則表達式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。


特殊字符


所謂特殊字符,就是一些有特殊含義的字符, 比如:*字符它表示任何字符串的意思。如果要查找字符串中的 * 符號,則需要對 * 進行轉義,即在其前加一個\\斜槓,\\*。


Java的正則表達式,你瞭解多少?


特殊字符小知識點拓展:

1、()代表組也可以叫分組,什麼是分組,是什麼時候用到分組呢? a、什麼是分組:()裡面的是一個子表達式是一個整體,()內的規則只對內有效,括號外的規則作用於整個()。 比如:do(es)?,這裡表示可看做:d、o、es三個組合在一起,其中es是一個整體,?只作用(es)整體, 不單作用s也不作用d和o。 b、什麼時候用分組:匹配相同範圍內的不同值。例如:需要同時匹配gmail、163、sina的郵箱地址。gmail、 163、sina他們都是屬於郵箱的後綴。 表達式:\\w{4,20}@(gmail|163|sina)\\.com :單詞字符4-20個,一個@,gmail、163、sina 分組中任意一個,最後一個.com。 如果在這裡不加上(),\\w{4,20}@gmail|163|sina\\.com,那麼|的範圍不在是()分組內, 而是整個表達式。sina\\.com被看做一個整體。


2、\\num 引用分組中的內容 當我們需要匹配相同內容時,分組為了我提供了一個方便的引用方式\\num。 例如: , A內容是一樣的,所以可以使用\\num來改進。 [\\\\u4e00-\\\\u9fa5]+\\1>:([a-zA-Z]*)是第一個組,\\1就能引用, 所以\\1>相當於([a-zA-Z]*)>


限定符(數量詞)


Java的正則表達式,你瞭解多少?


數量詞小知識點:

數量詞匹配的是前面的子表達式,那麼什麼是子表達式呢? 比如:zo*,星號作用的只有o單個字符,和z沒有任何關係。所以zo*匹配的是:一個z和任意個o。 比如:do(es)?,問號作用的(es)這個分組,所以do(es)?匹配的是:一個d和一個o和零個和一個es。


預定義字符類


Java的正則表達式,你瞭解多少?


分享到:


相關文章: