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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正则表达式真的很骚,可惜你不会写

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则表达式真的很骚,可惜你不会写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自? ?正則表達式真的很騷,可惜你不會寫

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

文章提綱:

  • 元字符

  • 重復限定符

  • 分組

  • 轉義

  • 條件或

  • 區間

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

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

    既然喜歡,那就動手學唄,可當你百度出一一堆相關資料時,你發現無一不例外的枯燥至極,難以學習(實話說,當年不理君也是這樣的心態??)。

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

    1.元字符

    萬物皆有緣,正則也是如此,元字符是構造正則表達式的一種基本元素。
    我們先來記幾個常用的元字符:

    元字符說明
    .匹配除換行符以外的任意字符
    \w匹配字母或數字或下劃線或漢字
    \s匹配任意的空白符
    \d匹配數字
    \b匹配單詞的開始或結束
    ^匹配字符串的開始
    $匹配字符串的結束

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

    匹配有abc開頭的字符串

    \babc或者^abc

    匹配8位數字的QQ號碼

    ^\d\d\d\d\d\d\d\d$

    匹配1開頭11位數字的手機號碼

    ^1\d\d\d\d\d\d\d\d\d\d$

    2. 重復限定符

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

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

    語法說明
    *重復零次或更多次
    +重復一次或更多次
    ?重復零次或一次
    {n}重復n次
    {n,}重復n次或更多次
    {n,m}重復n到m次

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

    匹配8位數字的QQ號碼

    ^\d{8}$

    匹配1開頭11位數字的手機號碼

    ^1\d{10}$

    匹配銀行卡號是14~18位的數字

    ^\d{14,18}$

    匹配以a開頭的,0個或多個b結尾的字符串

    ^ab*$

    3. 分組

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

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

    因此當我們要匹配多個ab時,我們可以這樣
    如:匹配字符串中包含0到多個ab開頭:

    ^(ab)*

    4. 轉義

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

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

    針對這種情況,正則提供了轉義的方式,也就是要把這些元字符、限定符或者關鍵字轉義成普通的字符,做法很簡答,就是在要轉義的字符前面加個斜杠,也就是\即可。
    如:要匹配以(ab)開頭:

    ^(\(ab\))*

    5. 條件或

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

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

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

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

    6. 區間

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

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

  • 限定0到9 可以寫成[0-9]

  • 限定A-Z 寫成[A-Z]

  • 限定某些數字 [165]

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

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

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

    總結

    以上是生活随笔為你收集整理的正则表达式真的很骚,可惜你不会写的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 伊人精品视频在线观看 | xvideos永久免费入口 | n0659极腔濑亚美莉在线播放播放 | 亚洲精品www久久久久久广东 | 亚欧成人 | 欧美日韩欧美 | 涩涩国产 | 国产99久久久国产精品成人免费 | 久热免费在线 | 成人免费观看视频 | 日本黄色录像 | 色婷婷精品视频 | 99精品福利视频 | 岛国av大片 | 美女扒开腿让男生捅 | 日本aⅴ在线 | 免费成人进口网站 | 懂色av一区 | 中文字幕在线观看一区二区三区 | 91免费视| 国产欧美一区二区精品性色 | 懂色av蜜臀av粉嫩av喷吹 | 亚洲一级色 | 亚洲一级av无码毛片精品 | 欧美色综合 | 色综合91| 天天综合天天综合 | 国产中文字幕一区二区 | 国产卡一卡二 | av在线播放中文字幕 | 清纯唯美亚洲 | 日韩不卡av在线 | 欧美xxxx性xxxxx高清 | 国产精品久久久久久久久动漫 | 国产性av | 亚洲欧美日韩一区二区 | 午夜dv内射一区二区 | 国产成人精品一区二区三区四区 | 最新中文字幕在线观看视频 | 亚洲欧美精品午睡沙发 | 成人在线亚洲 | 特黄网站 | 亚洲破处视频 | 亚洲图片一区二区三区 | 尤物视频在线免费观看 | 亚洲欧美国产视频 | 91在线一区二区三区 | 天天色天天操天天 | 午夜小影院| 成人动漫在线观看 | 日韩在线视频中文字幕 | 日韩人妻精品在线 | 九九爱精品视频 | 日本吃奶摸下激烈网站动漫 | 深夜福利网站在线观看 | 日本韩国欧美 | 激情偷乱人成视频在线观看 | 色婷婷久久一区二区三区麻豆 | 波多野结衣中文字幕一区二区 | 尤物国产视频 | 精品国产午夜福利 | 激情xxxx| 国内自拍小视频 | 久久精品6 | 欧美人与性动交α欧美片 | 男男毛片 | 日韩av麻豆 | 一级特黄aaa大片 | 国产成人高清视频 | 九色国产精品 | 三级无遮挡 | 亚洲伦理天堂 | 男女视频久久 | 91国内精品野花午夜精品 | 69堂精品| 国产98色在线 | 日韩 | 99久久免费看精品国产一区 | 四虎一区二区三区 | 色婷婷av一区二区三区之红樱桃 | 成人午夜高清 | 韩国美女被c | 偷操| 色男人的天堂 | 中文字幕在线日本 | 欧美理论在线观看 | 欧美激情不卡 | 封神榜二在线高清免费观看 | 成人里番精品一区二区 | 日皮在线观看 | 黄色一级片免费播放 | jzzijzzij亚洲成熟少妇18 欧美www在线观看 | 都市激情亚洲 | 女人和拘做爰正片视频 | 午夜老司机福利 | 操韩国美女 | 久久婷综合 | 日韩午夜伦 | 日本一级做a爱片 | 国产成人精品综合在线观看 |