正則表達(dá)式使用API - Pattern Matcher

Pattern

pattern作用就是將一個(gè)String類型的正則表達(dá)式,轉(zhuǎn)為一個(gè)Pattern對(duì)象

  1. 創(chuàng)建,該類沒(méi)有公共構(gòu)造函數(shù),使用:
    Pattern.compile(reg); reg代表傳入的正則表達(dá)式
  2. 分割字符串方法 split()
        String reg=",";
        String source="a,b,v,d";
        Pattern pattern=Pattern.compile(reg);
        String[] results=pattern.split(source);// a b c d
  1. 獲取傳入的正則表達(dá)式 pattern()
        String reg=",";
        String source="a,b,v,d";
        Pattern pattern=Pattern.compile(reg);
        String regular=pattern.pattern(); // ,
  1. 獲取Matcher對(duì)象
Matcher matcher=pattern.matcher(source); //其中source是我們需要匹配的源字符串

Matcher

1.創(chuàng)建Matcher,該類沒(méi)有公共構(gòu)造函數(shù),使用:

pattern.matcher(source);
  1. 3種匹配方法,分別是matches() lookingAt() find(),它們的返回值為布爾值,代表是否匹配到了:
  • matches() 該方法表示源字符串必須全部符合 正則表達(dá)式
        String reg="(\\w,)+";
        String source1="a,b,v,d,";
        String source2="a,b,v,d";
        Pattern pattern=Pattern.compile(reg);

        Matcher matcher1=pattern.matcher(source1);
        boolean result1=matcher1.matches(); //true

        Matcher matcher2=pattern.matcher(source2);
        boolean result2=matcher2.matches(); //false
  • lookingAt()該方法是匹配源字符串開(kāi)始位置是否 符合 正則表達(dá)式:
        String reg1="a,";
        String reg2="b,";
        String source="a,b,v,d,";
        Pattern pattern1=Pattern.compile(reg1);
        Pattern pattern2=Pattern.compile(reg2);

        Matcher matcher1=pattern1.matcher(source);
        boolean result1=matcher1.matches(); //true

        Matcher matcher2=pattern2.matcher(source2);
        boolean result2=matcher2.matches(); //false
  • find()該方法表示匹配源字符串 符合正則表達(dá)式的所有結(jié)果:
        String reg="a,";
        String source="a,b,v,a,d,a,";
        Pattern pattern=Pattern.compile(reg);
        Matcher matcher=pattern.matcher(source);
        while(matcher.find()){
            int start=matcher.start();//匹配到結(jié)果在源字符串的起始索引
            int end=matcher.end();//匹配到結(jié)果在源字符串的結(jié)束索引
            String group=matcher.group();//匹配到結(jié)果字符串
            Log.e("match","group:"+group+"\tstart="+start+"\tend="+end);
            //group:a,  start=0 end=2
            //group:a,  start=6 end=8
            //group:a,  start=10    end=12
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評(píng)論 19 139
  • 1.正則表達(dá)式介紹 正則表達(dá)式算起來(lái)也是一個(gè)很龐大的語(yǔ)言系統(tǒng),在所有的開(kāi)發(fā)語(yǔ)言中基本都支持正則表達(dá)式,它可以很方便...
    babybus_superdo閱讀 2,670評(píng)論 3 6
  • 最近學(xué)習(xí)到第 23 天了,還有 4 天時(shí)間我的 JavaSE 課程就要結(jié)束了,之后會(huì)有一個(gè)考試,需要復(fù)習(xí)一下,正好...
    SawyerZh閱讀 1,120評(píng)論 0 11
  • 昨天晚上,女兒玩的滿頭大汗,問(wèn)我:“爸爸,我可以脫衣服嗎?”因?yàn)樗罱行└忻?,我有些?dān)心,便堅(jiān)定地說(shuō):“不行,你...
    小鑫影評(píng)書(shū)評(píng)情感閱讀 600評(píng)論 2 3
  • 張清的日精進(jìn)第44天 體驗(yàn)入 多年不見(jiàn)的老客人,聊起當(dāng)年在康康接受服務(wù)的經(jīng)歷,受到的委屈,雖然都當(dāng)笑話在說(shuō)。但是我...
    kiyoi2017閱讀 220評(píng)論 0 1

友情鏈接更多精彩內(nèi)容