婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Java正則表達式基礎入門知識

Java正則表達式基礎入門知識

熱門標簽:線上教育ai外呼系統(tǒng) 鄂州人工智能電銷機器人軟件 菏澤智能ai電銷機器人銷售公司 400免費電話去哪申請 css百度地圖標注位置顯示 地圖標注字母的軟件 地圖標注商戶中心要收錢多少 實用地圖標注app 宿遷智能外呼系統(tǒng)供應商

眾所周知,在程序開發(fā)中,難免會遇到需要匹配、查找、替換、判斷字符串的情況發(fā)生,而這些情況有時又比較復雜,如果用純編碼方式解決,往往會浪費程序員的時間及精力。因此,學習及使用正則表達式,便成了解決這一矛盾的主要手段。

大家都知道,正則表達式是一種可以用于模式匹配和替換的規(guī)范,一個正則表達式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)組成的文字模式,它 用以描述在查找文字主體時待匹配的一個或多個字符串。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。

一:什么是正則表達式

    1.定義:正則表達式是一種可以用于模式匹配和替換的規(guī)范,一個正則表達式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)組成的文字模式,它 用以描述在查找文字主體時待匹配的一個或多個字符串。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。

    2.用途:

字符串匹配(字符匹配)

字符串查找

字符串替換

字符串分割

    例如:

從網(wǎng)頁中揪出email地址

IP地址是否正確

從網(wǎng)頁中揪出鏈接

    3.java中處理正則表達式的類:

java.lang.String

java.util.regex.Pattern:模式類:字符串要被匹配的這么一個模式,該模式本身已經(jīng)被編譯過,使用的話效率要高很多。

java.util.regex.Matcher:匹配類:這個模式匹配某個字符串所產(chǎn)生的結果,這個結果可能會有很多個。

    4:下面通過一個小程序簡單介紹一下正則表達式

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
 public static void main(String[] args) {
  //matches()判斷字符串是否匹配某個表達式,"."表示任何一個字符
  p("abc".matches("..."));
  //將字符串"a2389a"中的數(shù)字用*替換,\d 表示“0--9”數(shù)字
  p("a2389a".replaceAll("\\d", "*"));
  //將任何是a--z的字符串長度為3的字符串進行編譯,這樣可以加快匹配速度
  Pattern p = Pattern.compile("[a-z]{3}");
  //進行匹配,并將匹配結果放在Matcher對象中
  Matcher m = p.matcher("abc");
  p(m.matches());
  //上面的三行代碼可以用下面一行代碼代替
  p("abc".matches("[a-z]{3}"));
 }
 public static void p(Object o){
  System.out.println(o);
 }
} 

下面是打印結果

true
a****a
true
true

 現(xiàn)在通過一些實驗來說明正則表達式的匹配規(guī)則,這兒是Greedy方式

  .              任何字符

 a?             a一次或一次也沒有

 a*             a零次或多次

 a+            a一次或多次

 a{n}?      a恰好 n 次

 a{n,}?       a至少n次

 a{n,m}?   a至少n次,但是不超過m次

        //初步認識. * + ?
        p("a".matches("."));//true
        p("aa".matches("aa"));//true
        p("aaaa".matches("a*"));//true
        p("aaaa".matches("a+"));//true
        p("".matches("a*"));//true
        p("aaaa".matches("a?"));//false
        p("".matches("a?"));//true
        p("a".matches("a?"));//true
        p("1232435463685899".matches("\\d{3,100}"));//true
        p("192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));//false
        p("192".matches("[0-2][0-9][0-9]"));//true

[abc]                        a、b 或 c(簡單類)

[^abc]                      任何字符,除了 a、b 或 c(否定)

[a-zA-Z]                   a 到 z 或 A 到 Z,兩頭的字母包括在內(nèi)(范圍)

[a-d[m-p]]                a 到 d 或 m 到 p:[a-dm-p](并集)

[a-z[def]]             d、e 或 f(交集)

[a-z[^bc]]             a 到 z,除了 b 和 c:[ad-z](減去)

[a-z[^m-p]]            a 到 z,而非 m 到 p:[a-lq-z](減去)

        //范圍

        p("a".matches("[abc]"));//true
        p("a".matches("[^abc]"));//false
        p("A".matches("[a-zA-Z]"));//true
        p("A".matches("[a-z]|[A-Z]"));//true
        p("A".matches("[a-z[A-Z]]"));//true
        p("R".matches("[A-Z[RFG]]"));//true

\d                          數(shù)字:[0-9]

\D                         非數(shù)字: [^0-9]

\s                          空白字符:[ \t\n\x0B\f\r]

\S                         非空白字符:[^\s]

\w                         單詞字符:[a-zA-Z_0-9]

\W                        非單詞字符:[^\w]

         //認識\s \w \d \
        p("\n\r\t".matches("\\s(4)"));//false
        p(" ".matches("\\S"));//false
        p("a_8 ".matches("\\w(3)"));//false
        p("abc888^%".matches("[a-z]{1,3}\\d+[^#%]+"));//true
        p("\\".matches("\\\\"));//true

 邊界匹配器

      ^                                          行的開頭

      $                                          行的結尾

      \b                                        單詞邊界

      \B                                        非單詞邊界

      \A                                        輸入的開頭

      \G                                       上一個匹配的結尾

      \Z                                       輸入的結尾,僅用于最后的結束符(如果有的話)

      \z                                       輸入的結尾

        //邊界匹配
        p("hello sir".matches("^h.*"));//true
        p("hello sir".matches(".*ir$"));//true
        p("hello sir".matches("^h[a-z]{1,3}o\\b.*"));//true
        p("hellosir".matches("^h[a-z]{1,3}o\\b.*"));//false
        //空白行:一個或多個(空白并且非換行符)開頭,并以換行符結尾
        p(" \n".matches("^[\\s[^\\n]]*\\n$"));//true

 方法解析

matches():匹配整個字符串

find():匹配子字符串

lookingAt():永遠從整個字符串的開頭開始匹配

//email
        p("asdsfdfagf@adsdsfd.com".matches("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+"));//true
       
        //matches() find() lookingAt()
        Pattern p = Pattern.compile("\\d{3,5}");
        Matcher m = p.matcher("123-34345-234-00");
       
        //將整個"123-34345-234-00"用正則表達式引擎查找匹配,當?shù)降谝粋€"-"不匹配了,就停止,
        //但不會將不匹配的"-"吐出來
        p(m.matches());
        //將不匹配的"-"吐出來
        m.reset();
       
        //1:當前面有p(m.matches());查找子字符串從"...34345-234-00"開始
        //將會是第1,2兩個查到"34345"和"234" 后面2個查不到為false
        //2:當前面有p(m.matches());和m.reset();查找子字符串從"123-34345-234-00"開始
        //將為true,true,true,false
        p(m.find());
        p(m.start()+"---"+m.end());
        p(m.find());
        p(m.start()+"---"+m.end());
        p(m.find());
        p(m.start()+"---"+m.end());
        p(m.find());
        //要是沒找到就會報異常java.lang.IllegalStateException
        //p(m.start()+"---"+m.end());
       
        p(m.lookingAt());
        p(m.lookingAt());
        p(m.lookingAt());
        p(m.lookingAt());

字符串替換:下面這種方法對于字符串替換非常靈活

        //字符串替換
        //Pattern.CASE_INSENSITIVE大小寫不敏感
        Pattern p = Pattern.compile("java",Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher("java Java jAva ILoveJavA youHateJAVA adsdsfd");
        //存放字符串
        StringBuffer  buf = new StringBuffer();
        //計數(shù)奇偶數(shù)
        int i  = 0;
        while(m.find()){
            i++;
            if(i%2 == 0){
                m.appendReplacement(buf, "java");
            }else{
                m.appendReplacement(buf, "JAVA");
            }
        }
        //不加這句話,字符串a(chǎn)dsdsfd將會被遺棄
        m.appendTail(buf);
        p(buf);

結果打印:

JAVA java JAVA ILovejava youHateJAVA adsdsfd

分組

        //group分組,用()分組
        Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");
        String s = "123aa-34345bb-234cc-00";
        Matcher m = p.matcher(s);
        p(m.groupCount());//2組
        while(m.find()){
            p(m.group());//數(shù)字字母都有
            //p(m.group(1));//只有數(shù)字
            //p(m.group(2));//只有字母
        }

二、正則表達式簡單使用

java正則表達式使用

您可能感興趣的文章:
  • Java正則表達式入門基礎篇(新手必看)
  • Java正則表達式使用
  • 在Java編程中使用正則表達式的基本方法

標簽:池州 梅州 鞍山 六安 咸陽 綿陽 恩施 三亞

巨人網(wǎng)絡通訊聲明:本文標題《Java正則表達式基礎入門知識》,本文關鍵詞  Java,正則,表達式,基礎,入門,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Java正則表達式基礎入門知識》相關的同類信息!
  • 本頁收集關于Java正則表達式基礎入門知識的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产一区二区三区av电影 | 一区二区三区免费看视频| 久久精品国产网站| 日韩亚洲欧美一区| 视频一区在线播放| 欧洲生活片亚洲生活在线观看| 国产精品免费久久| 在线免费观看视频一区| 亚洲一区二区精品久久av| 欧美日韩国产一级片| 日本中文字幕一区| 久久久久久夜精品精品免费| 国产99一区视频免费| √…a在线天堂一区| 色94色欧美sute亚洲线路一ni| 五月综合激情婷婷六月色窝| 欧美精品v日韩精品v韩国精品v| 蜜臀久久99精品久久久画质超高清| 久久婷婷成人综合色| 91老师片黄在线观看| 亚洲成人在线免费| 久久精品人人做人人爽97| 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 日本特黄久久久高潮| 欧美成人video| 成人动漫中文字幕| 人人狠狠综合久久亚洲| 国产精品久久久久久久久免费相片| 在线观看不卡一区| 国产真实乱对白精彩久久| 一区二区三区 在线观看视频| 久久久久国产精品麻豆ai换脸| 国产美女久久久久| 亚洲一区二区三区不卡国产欧美| 日韩欧美一级二级| 91免费观看在线| 国产精品123| 婷婷综合久久一区二区三区| 中文字幕亚洲视频| 亚洲精品一区二区三区精华液| 91国产免费看| 不卡电影一区二区三区| 免费成人在线观看| 亚洲午夜久久久| 国产精品久久久久久久久免费丝袜 | 日韩不卡免费视频| 亚洲免费观看高清完整版在线观看| 日韩免费观看高清完整版| 色猫猫国产区一区二在线视频| 国产一区二区主播在线| 日本aⅴ精品一区二区三区| 中文字幕中文字幕中文字幕亚洲无线| 91精品午夜视频| 91精品黄色片免费大全| 欧美日本高清视频在线观看| 91麻豆精品秘密| 色呦呦国产精品| 91精品国产色综合久久ai换脸| k8久久久一区二区三区| 久久精品国产999大香线蕉| 五月综合激情网| 天堂蜜桃91精品| 日韩精品亚洲专区| 日日摸夜夜添夜夜添亚洲女人| 亚洲国产中文字幕在线视频综合| 成人免费在线视频观看| 国产精品卡一卡二| 国产精品―色哟哟| 亚洲人吸女人奶水| 亚洲视频在线观看三级| 亚洲免费视频中文字幕| 亚洲一二三四区不卡| 亚洲成人久久影院| 日本中文在线一区| 麻豆视频一区二区| 国产精品伊人色| av成人老司机| 欧美日本一区二区三区四区 | 精品动漫一区二区三区在线观看| 精品欧美一区二区久久| 久久精品一级爱片| 国产精品久久久久久久午夜片| 国产精品不卡一区| 性久久久久久久久| 三级精品在线观看| 开心九九激情九九欧美日韩精美视频电影| 麻豆一区二区三| 国产乱对白刺激视频不卡| 大胆欧美人体老妇| 欧美在线免费视屏| 91麻豆精品国产91久久久久| 2021国产精品久久精品| 亚洲精品国产第一综合99久久| 亚洲va欧美va国产va天堂影院| 麻豆一区二区99久久久久| 国产91精品露脸国语对白| 日本精品裸体写真集在线观看| 制服丝袜一区二区三区| 欧美成人a视频| 亚洲男帅同性gay1069| 美日韩一区二区| 99国产精品99久久久久久| 欧美日韩你懂得| 国产嫩草影院久久久久| 亚洲国产精品一区二区久久恐怖片| 日本一区中文字幕 | 久久精品亚洲国产奇米99| 国产欧美va欧美不卡在线| 国产精品久久毛片av大全日韩| 首页国产丝袜综合| www.欧美亚洲| 精品日韩99亚洲| 天堂影院一区二区| 国产ts人妖一区二区| 色综合天天狠狠| 欧美精品一区二| 天天免费综合色| 91福利视频在线| 久久精品视频免费| 美女性感视频久久| 91成人免费电影| 国产精品国产三级国产普通话三级| 日本va欧美va精品| 91福利精品视频| 国产精品成人午夜| 国产精品资源网站| 7777精品伊人久久久大香线蕉的 | 中文字幕va一区二区三区| 午夜精品久久久久久久| 国产suv精品一区二区三区| 欧美综合亚洲图片综合区| 日韩三级伦理片妻子的秘密按摩| 国产精品高潮呻吟久久| 裸体一区二区三区| 欧美系列日韩一区| 亚洲人成网站影音先锋播放| 丁香婷婷综合色啪| 精品国产免费视频| 天堂久久久久va久久久久| gogogo免费视频观看亚洲一| 久久综合久久鬼色中文字| 日韩av一区二| 91精品免费观看| 日本欧美一区二区在线观看| av激情综合网| 一区二区三区在线播放| 在线观看日韩高清av| 亚洲欧洲日本在线| 成人午夜av电影| 亚洲免费电影在线| 欧美日韩午夜精品| 欧美一级在线观看| 国产一区二区精品久久99| 久久精品一区二区三区不卡牛牛 | 美女被吸乳得到大胸91| av亚洲精华国产精华精| 国产欧美精品国产国产专区| 91日韩一区二区三区| 亚洲一区二区三区视频在线播放| 精品污污网站免费看| 蜜臀久久99精品久久久久宅男| 欧美成人a在线| 国产一区二区三区四| 国产女同性恋一区二区| 91啪亚洲精品| 亚洲成在人线免费| 国产美女娇喘av呻吟久久| 亚洲国产精品精华液ab| 99久久亚洲一区二区三区青草| 国产精品久久久久影院色老大 | 国产丝袜在线精品| 豆国产96在线|亚洲| 国产精品麻豆网站| 欧美午夜影院一区| 青青草国产精品亚洲专区无| 久久综合精品国产一区二区三区| 91猫先生在线| 在线成人高清不卡| 精品在线播放免费| 亚洲精品中文字幕在线观看| 欧美电影在线免费观看| 大白屁股一区二区视频| 日本麻豆一区二区三区视频| 久久精品亚洲精品国产欧美 | 久久久久久亚洲综合影院红桃| 欧美人xxxx| 国产原创一区二区| 亚洲日本va在线观看| 日韩一区二区精品葵司在线| 欧美—级在线免费片| 欧美精品久久99久久在免费线 | 亚洲一区二区欧美日韩| 国产米奇在线777精品观看| 亚洲精品久久久蜜桃| 久久久精品国产免费观看同学| 成人va在线观看| 国产麻豆一精品一av一免费| 久久丁香综合五月国产三级网站| 亚洲精品国产a久久久久久| 国产欧美精品在线观看|