日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 正则匹配_正则表达式真的很强大,可惜你不会写

發(fā)布時間:2024/9/27 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 正则匹配_正则表达式真的很强大,可惜你不会写 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

專注于Java領(lǐng)域優(yōu)質(zhì)技術(shù),歡迎關(guān)注

本文旨在用最通俗的語言講述最枯燥的基本知識

文章提綱:

  • 元字符
  • 重復(fù)限定符
  • 分組
  • 轉(zhuǎn)義
  • 條件或
  • 區(qū)間

正則表達式在幾乎所有語言中都可以使用,無論是前端的JavaScript、還是后端的Java、c#。他們都提供相應(yīng)的接口/函數(shù)支持正則表達式。

但很神奇的是:無論你大學(xué)選擇哪一門計算機語言,都沒有關(guān)于正則表達式的課程給你修,在你學(xué)會正則之前,你只能看著那些正則大師們,寫了一串外星文似的字符串,替代了你用一大篇幅的if else代碼來做一些內(nèi)容校驗

既然喜歡,那就動手學(xué)唄,可當(dāng)你百度出一一堆相關(guān)資料時,你發(fā)現(xiàn)無一不例外的枯燥至極,難以學(xué)習(xí)(實話說,當(dāng)年不理君也是這樣的心態(tài))。

下面,不理君嘗試用一種比較通俗點的方式講一下正則,讓你能在讀完之后,自己寫出一些簡單的正則,再不濟,能看到別人寫的正則,那也不錯了。

1.元字符

萬物皆有源,正則也是如此,元字符是構(gòu)造正則表達式的一種基本元素。

我們先來記幾個常用的元字符:

有了元字符之后,我們就可以利用這些元字符來寫一些簡單的正則表達式了,

比如:

  • 匹配有abc開頭的字符串:
  • babc或者^abc
  • 匹配8位數(shù)字的QQ號碼:
  • ^dddddddd$
  • 匹配1開頭11位數(shù)字的手機號碼:
  • ^1dddddddddd$

    2. 重復(fù)限定符

    有了元字符就可以寫不少的正則表達式了,但細心的你們可能會發(fā)現(xiàn):別人寫的正則簡潔明了,而不理君寫的正則一堆亂七八糟而且重復(fù)的元字符組成的。正則沒提供辦法處理這些重復(fù)的元字符嗎?

    答案是有的!

    為了處理這些重復(fù)問題,正則表達式中一些重復(fù)限定符,把重復(fù)部分用合適的限定符替代,下面我們來看一些限定符:

    有了這些限定符之后,我們就可以對之前的正則表達式進行改造了,比如:

  • 匹配8位數(shù)字的QQ號碼:
  • ^d{8}$
  • 匹配1開頭11位數(shù)字的手機號碼:
  • ^1d{10}$
  • 匹配銀行卡號是14~18位的數(shù)字:
  • ^d{14,18}$
  • 匹配以a開頭的,0個或多個b結(jié)尾的字符串
  • ^ab*$

    3. 分組

    從上面的例子(4)中看到,*限定符是作用在與他左邊最近的一個字符,那么問題來了,如果我想要ab同時被*限定那怎么辦呢?

    正則表達式中用小括號()來做分組,也就是括號中的內(nèi)容作為一個整體。

    因此當(dāng)我們要匹配多個ab時,我們可以這樣

    如:匹配字符串中包含0到多個ab開頭:

    ^(ab)*

    4. 轉(zhuǎn)義

    我們看到正則表達式用小括號來做分組,那么問題來了:

    如果要匹配的字符串中本身就包含小括號,那是不是沖突?應(yīng)該怎么辦?

    針對這種情況,正則提供了轉(zhuǎn)義的方式,也就是要把這些元字符、限定符或者關(guān)鍵字轉(zhuǎn)義成普通的字符,做法很簡答,就是在要轉(zhuǎn)義的字符前面加個斜杠,也就是即可。

    如:要匹配以(ab)開頭:

    1^((ab))*

    5. 條件或

    回到我們剛才的手機號匹配,我們都知道:國內(nèi)號碼都來自三大網(wǎng),它們都有屬于自己的號段,比如聯(lián)通有130/131/132/155/156/185/186/145/176等號段,假如讓我們匹配一個聯(lián)通的號碼,那按照我們目前所學(xué)到的正則,應(yīng)該無從下手的,因為這里包含了一些并列的條件,也就是“或”,那么在正則中是如何表示“或”的呢?

    正則用符號 | 來表示或,也叫做分支條件,當(dāng)滿足正則里的分支條件的任何一種條件時,都會當(dāng)成是匹配成功。

    那么我們就可以用或條件來處理這個問題

    1^(130|131|132|155|156|185|186|145|176)d{8}$

    6. 區(qū)間

    看到上面的例子,是不是看到有什么規(guī)律?是不是還有一種想要簡化的沖動?

    實際是有的

    正則提供一個元字符中括號 [] 來表示區(qū)間條件。

    • 限定0到9 可以寫成[0-9]
    • 限定A-Z 寫成[A-Z]
    • 限定某些數(shù)字 [165]

    那上面的正則我們還改成這樣:

    ^((13[0-2])|(15[56])|(18[5-6])|145|176)d{8}$

    好了,正則表達式的基本用法就講到這里了,其實它還有非常多的知識點以及元字符,我們在此只列舉了部分元字符和語法來講,旨在給那些不懂正則或者想學(xué)正則但有看不下去文檔的人做一個快速入門級的教程,看完本教程,即使你不能寫出高大上的正則,至少也能寫一些簡單的正則或者看得懂別人寫的正則了,如果需要進階學(xué)習(xí),那就靠各位好好修煉啦。

    來自:https://juejin.im/post/5b96a8e2e51d450e6a2de115

    總結(jié)

    以上是生活随笔為你收集整理的java 正则匹配_正则表达式真的很强大,可惜你不会写的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美中文字幕在线视频 | 理论片av| 色成人综合 | 日韩在线观看网站 | 国产crm系统91在线 | 国产精品theporn | 午夜久久视频 | 久久丫精品 | 婷婷亚洲激情 | 三级国产网站 | 国产精品久久久久久久久久久免费看 | 用力挺进新婚白嫩少妇 | 性色欲情网站iwww九文堂 | 亚洲视频在线免费 | 小嫩嫩精品导航 | 欧美人妻少妇一区二区三区 | 日本精品一区在线观看 | 亚洲成人av在线 | 青青草原综合网 | 亚洲五级片 | 天天干狠狠 | 精品日日夜夜 | 亚洲福利小视频 | 2019狠狠干| 91干干| 国产成人三级在线观看 | 欧美日韩一区二区在线观看视频 | 日韩免费看 | 91丨九色| 1级片在线观看 | 国产人成一区二区三区影院 | 91豆花视频 | 在线看三级| 超级变态重口av番号 | 大毛片| 国精产品一区一区三区视频 | 九一亚洲精品 | 亚洲天堂视频在线观看 | 日韩国产精品视频 | 叶全真三级 | 久久五十路 | 精品视频久久 | 最近的中文字幕 | 成人毛片视频在线观看 | 999色综合 | 色诱视频在线观看 | 久久精久久 | 久久久久久亚洲av毛片大全 | 国产男男一区二区三区 | 中国女人和老外的毛片 | 亚洲激情一区二区三区 | 欧美日韩激情 | 欧美乱插 | 国产精品视频一二三 | 亚洲天堂小说 | 国产精品厕所 | 欧美性猛交xxxⅹ富婆 | 国产黄色大片免费看 | 夜间福利在线观看 | 亚洲涩涩图 | 欧美特级黄色录像 | 久久久久久人妻一区二区三区 | 成人18在线 | 国产精品亚洲а∨天堂免在线 | 国产视频1区2区 | 精品国自产在线观看 | 特黄特黄视频 | 久久爱影视i | 天堂国产精品 | 免费av的网站 | 一级性爱视频 | 丁香花免费高清完整在线播放 | 婷婷午夜影院 | 中出亚洲| www.色呦呦 | 少妇婷婷 | 玖操| 99久久久无码国产精品性青椒 | 免费观看黄色小视频 | 日夜夜操| 午夜久久剧场 | 亚洲激情欧美激情 | 亚洲精品国产精品乱码桃花 | 日韩精品在线播放 | 少妇激情四射 | 天天操天天舔天天干 | 久久一精品| 国产一区二区三区视频 | 96国产在线 | 91福利视频在线 | 人妻色综合网站 | 久久涩 | 交做爰xxxⅹ性爽 | 日韩成人在线观看视频 | 亚洲25p| 国产欧美日韩二区 | 午夜精品久久久久久毛片 | 欧美资源在线观看 | 最近中文字幕在线mv视频在线 |