Java 如何用pattern 和 Matcher 來使用正則表達(dá)式
java的regex庫
java里預(yù)留了一個(gè)regex庫,方便于我們?cè)趈ava里操作正則表達(dá)式,或者用它來匹配字符串。
其中比較常用的就是 Pattern 和 Matcher ,pattern是一個(gè)編譯好的正則表達(dá)式,而Mather是一個(gè)正則表達(dá)式適配器,Mather的功能很強(qiáng)大,所以我們一般用pattern 來獲取一個(gè)Matcher對(duì)象,然后用Matcher來操作正則表達(dá)式。先看一下這兩個(gè)類的用法吧、
Pattern
創(chuàng)建pattern的對(duì)象是很簡(jiǎn)單的,但是由于pattern的構(gòu)造方法是用private聲明的,所以我們僅能通過工廠模式的compile方法來返回一個(gè)Pattern的對(duì)象。
Pattern pattern = Pattern.compile("[abc]");
compile可以接收一個(gè)正則表達(dá)式作為參數(shù)。
接下來我們創(chuàng)建一個(gè)Matcher對(duì)象。Matcher的構(gòu)造方法也是一個(gè)private方法,但是我們可以通過Pattern的Matcher方法來返回一個(gè)Matcher對(duì)象。
Matcher matcher = pattern.matcher("hello abc");
這里matcher可以接收一個(gè)字符串作為參數(shù),準(zhǔn)確的說這里所接收的參數(shù)類型是CharSequences接口類型的參數(shù),但是String、StringBuffer、StringBuilder還有CharBuffer都實(shí)現(xiàn)了CharSequence接口,因此我們向里面?zhèn)魅脒@四種任何我們需要的參數(shù)。
與此同時(shí)Pattern還提供了一個(gè)matches 靜態(tài)方法,它允許我們傳入一個(gè)String類型的正則表達(dá)式和一個(gè)String類型的需要匹配的字符串,并返回一個(gè)boolean類型的值,這個(gè)方法的好處在于我們可以不用創(chuàng)建pattern對(duì)象和matcher對(duì)象就可以知道所傳入的正則表達(dá)式能不能匹配所傳入的字符串。
boolean bool = Pattern.matches("\\w+","hello abc");