Java基礎(chǔ)學(xué)習(xí):Java正則表達(dá)式教程

Java基礎(chǔ)學(xué)習(xí):Java正則表達(dá)式教程

天津卓眾教育      2022-03-16 12:00:01     15

Java基礎(chǔ)學(xué)習(xí):Java正則表達(dá)式教程,  正則表達(dá)式  正則表達(dá)式大家應(yīng)該都不陌生,我今天從零開始介紹我自己的學(xué)習(xí)經(jīng)驗(yàn)和步驟!  字符組  在一對(duì)方括號(hào)[和]之

課程價(jià)格 請咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹


  正則表達(dá)式


  正則表達(dá)式大家應(yīng)該都不陌生,我今天從零開始介紹我自己的學(xué)習(xí)經(jīng)驗(yàn)和步驟!


  字符組


  在一對(duì)方括號(hào)[和]之間列出所有可能出現(xiàn)的字符,包括可見以及不可見的字符;例如:


  [123]


  表示可以匹配1、2、3的單個(gè)字符。


  1字符組的范圍表示


  如果可以匹配的字符有規(guī)律性并且范圍比較大,比如0、1、2、3、4、5、6、7、8、9,表達(dá)式寫成


  [0123456789]


  這樣就顯得復(fù)雜也不美觀,所以引入符號(hào)"-",使用[x-y]的形式表示在閉區(qū)間x到y(tǒng)范圍內(nèi)的字符,上式可以寫成


  [0-9]


  【注意】:-范圍表示法必須遵循ASCII編碼的先后順序,即上式不可寫作[9-0],而一些令人困惑的表達(dá)式也盡量不要使用,比如[0-z]因?yàn)樵撌胶w了在ASCII編碼表中從0到z的全部字符(不僅僅只有數(shù)字和小寫字母)。如果想要表示多個(gè)范圍,比如匹配數(shù)字、大寫字母和小寫字母,表達(dá)式可以寫作


  [0-9a-zA-Z]


  2元字符與轉(zhuǎn)義


  在表達(dá)式中有特殊功能而不作為字符的一部分字符,稱為元字符。比如前文講過的:[]-都是元字符,如果想要恢復(fù)它們本來的字符屬性就要做一些特殊處理。先看一般情況,取消元字符特殊含義的操作叫做轉(zhuǎn)義,操作是在表達(dá)式中的元字符前加反斜杠。特殊情況就是表示范圍的橫線-,當(dāng)其緊鄰左方括號(hào)[時(shí)就作為普通字符處理,其他情況都作為元字符表示范圍。


  【注意】


  1、橫線-也支持反斜杠的轉(zhuǎn)義,即[0-9]表示0、-、9三個(gè)字符。


  2、右方括號(hào)]不需要轉(zhuǎn)義。


  3排除型字符組


  當(dāng)需要表示的字符組范圍很大,寫起來不方便,而恰巧它的補(bǔ)集(全集指所有字符)方便表示,引出了排除型字符組[^…],表示在當(dāng)前位置匹配一個(gè)沒有列出的字符,請注意是"必須匹配一個(gè)沒有出現(xiàn)的字符",而不是"不要匹配列出的字符"。例如:


  [^0-9][^0-9]


  可以匹配"QQ",但不可以匹配"Q"。


  【注意】緊跟在^之后的-不是一個(gè)元字符!而^自身也是元字符,當(dāng)且僅當(dāng)^緊跟[時(shí),否則表示它作為字符的含義。



  4字符組簡記法


  常見的字符組簡記法有d([0-9])、w([0-9a-zA-Z_])、s([trnvf])


  【注意】w可以匹配下劃線,不等價(jià)于[0-9a-zA-Z]。另外字符組簡記法可以單獨(dú)出現(xiàn),也可以使用在字符組中,如


  `[0-9a-zA-Z]`可以寫成`[da-zA-Z]`


  正則表達(dá)式也提供了上面三種常用簡記法的排除型:D、W、S,這三種分別對(duì)應(yīng)各自的補(bǔ)集(全集是指所有字符,即[dD]可以匹配任意字符,剩余二者同理)。


  【再次注意】第一,使用字符組簡記法最好不要出現(xiàn)單獨(dú)的-;第二,上面描述的簡記法都是針對(duì)ASCII編碼而言的;第三,字符組簡記法不止這三種,還有其他(也可能根據(jù)不同的編程語言衍生出新的簡記法),等遇到了再說。


  5字符組的運(yùn)算


  當(dāng)我們所研究的問題要求我們的全集不是所有字符,排除型字符組就顯得不是那么的好用了。比如我需要匹配字母表第1、5、9個(gè)小寫字母,把所有字符看作全集顯然不合適,而把所有小寫字母看作全集就比較合適,但是寫成[b-df-hj-z]就比較復(fù)雜而且容易搞錯(cuò),Java就允許使用邏輯與(&&,也可以理解為取交集)來解決這個(gè)問題,即寫成:


  [a-z]&&[^aei]



    以上就是天津卓眾教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java基礎(chǔ)學(xué)習(xí):Java正則表達(dá)式教程”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


Java基礎(chǔ)學(xué)習(xí) Java基礎(chǔ)教程

培訓(xùn)啦提醒您:交易時(shí)請核實(shí)對(duì)方資質(zhì),對(duì)于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。