正則表達式教程

前言

如果你從事服務端的開發(fā)邻耕,相比你一定聽說過正則表達式,最常見的應該就是對要提交表單的字段進行正確性判斷。比如注冊的時候檢測手機號位數(shù)和號段是否正確等予权,如下圖:

位數(shù)檢測
號段檢測

上述功能都是通過正則表達式來實現(xiàn)的些楣,只要短短的一行表達式脂凶,而不用if...else if...if...else...一大堆邏輯判斷的代碼宪睹。

正則表達式的作用不只如此,本文會詳細介紹的...


簡介

正則表達式(Regular Expression)是一種文本模式蚕钦,使用單個字符串來描述亭病、匹配一系列匹配某個句法規(guī)則的字符串。

似曾相識嘶居?

在日常使用計算機的時候罪帖,你可能會遇到一些類似于正則表達式的搜索技巧,比如通配符邮屁?和*來查找你硬盤上的文件整袁。比如,搜索config?.dat你可能會搜到這樣的結(jié)果

   config1.dat
   config2.dat
   config3.dat

而使用config*.dat來搜過的話你會送到類似這樣的文件:

  configa.dat
  configapple.dat
  configserver.dat

(⊙v⊙)嗯~就是這種感覺佑吝,短短的幾個神秘字符葬项,就能起到很神奇的作用

** 注意:但是上面?和*的語法不是真正的正則的語法迹蛤,只是類似而已 **

稍微搜了一下正則君的身世验残,發(fā)現(xiàn)還不得了呢(@ο@)

發(fā)展歷史
正則表達式的"祖先"可以一直上溯至對人類神經(jīng)系統(tǒng)如何工作的早期研究壶谒。Warren McCulloch 和 Walter Pitts 這兩位神經(jīng)生理學家研究出一種數(shù)學方式來描述這些神經(jīng)網(wǎng)絡。
1956 年, 一位叫 Stephen Kleene 的數(shù)學家在 McCulloch 和 Pitts 早期工作的基礎上,發(fā)表了一篇標題為"神經(jīng)網(wǎng)事件的表示法"的論文狈醉,引入了正則表達式的概念。正則表達式就是用來描述他稱為"正則集的代數(shù)"的表達式箕母,因此采用"正則表達式"這個術(shù)語吓妆。
隨后,發(fā)現(xiàn)可以將這一工作應用于使用 Ken Thompson 的計算搜索算法的一些早期研究宣渗,Ken Thompson 是 Unix 的主要發(fā)明人抖所。正則表達式的第一個實用應用程序就是 Unix 中的 qed 編輯器。
如他們所說痕囱,剩下的就是眾所周知的歷史了田轧。從那時起直至現(xiàn)在正則表達式都是基于文本的編輯器和搜索工具中的一個重要部分。

看了正則君的身世鞍恢,是不是覺得他挺酷的~嗯確實傻粘,但是他可不是看臉吃飯的(長得挺嚇人的...),他的常見外貌是這個樣子的:
^.+@.+\\..+$
上面這一小坨符號就是正則君帮掉,不要懷疑是你的瀏覽器亂碼弦悉!沒錯!正則表達式長得就是這個樣子蟆炊!

好吧稽莉,雖然長得嚇人,但是它會很有用的涩搓,而且會寫正則表達式還是個很裝X的事情呢~呵呵


正則表達式 - 語法

正則表達式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為"元字符")組成的文字模式污秆。模式描述在搜索文本時要匹配的一個或多個字符串后室。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配混狠。

上面的這段話的意思主要有三點
1.正則是一種字符模式(特定組合)的表達式
2.正則有兩種字符

  • 普通字符(a-z)
  • 特殊字符(元字符)

3.正則是幾中類型字符組合的一種** 模板 **

** 對啦岸霹,總之正則就是一個模板 **

除了上述兩種字符之外,我們還需要了解“限定符”将饺、“定位符”等更具有邏輯意義的字符贡避,以便施展正則判斷的魔力

普通字符

普通字符分為可打印字符和非打印字符∮杌。可打印字符比較好理解刮吧,非打印字符是很么呢?看了下面這張表你就明白啦掖蛤。比較常見的就是“/n"換行字符啦

非打印字符

特殊字符(元字符)

特殊字符杀捻,就是那些沒有直觀意思的字符,或者說他有著特殊的意義蚓庭,例如.txt"中的致讥,是表示任何字符串的意思。
許多元字符要求在試圖匹配它們時特別對待器赞。若要匹配這些特殊字符垢袱,必須首先使字符"轉(zhuǎn)義",即港柜,將反斜杠字符 () 放在它們前面请契。下表列出了正則表達式中的特殊字符:

特殊字符表

限定符

限定符用來指定正則表達式的一個給定組件必須要出現(xiàn)多少次才能滿足匹配。有*或+或?或{n}或{n,}或{n,m}共6種夏醉。
正則表達式的限定符有:

*** 待續(xù).... ***

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末爽锥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子畔柔,更是在濱河造成了極大的恐慌氯夷,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件释树,死亡現(xiàn)場離奇詭異肠槽,居然都是意外死亡擎淤,警方通過查閱死者的電腦和手機奢啥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘴拢,“玉大人桩盲,你說我怎么就攤上這事∠猓” “怎么了赌结?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵捞蛋,是天一觀的道長。 經(jīng)常有香客問我柬姚,道長拟杉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任量承,我火速辦了婚禮搬设,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘撕捍。我一直安慰自己拿穴,他們只是感情好,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布忧风。 她就那樣靜靜地躺著默色,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狮腿。 梳的紋絲不亂的頭發(fā)上腿宰,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天,我揣著相機與錄音缘厢,去河邊找鬼酗失。 笑死,一個胖子當著我的面吹牛昧绣,可吹牛的內(nèi)容都是我干的规肴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼夜畴,長吁一口氣:“原來是場噩夢啊……” “哼拖刃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贪绘,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤兑牡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后税灌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體均函,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年菱涤,在試婚紗的時候發(fā)現(xiàn)自己被綠了苞也。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡粘秆,死狀恐怖如迟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤殷勘,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布此再,位于F島的核電站,受9級特大地震影響玲销,放射性物質(zhì)發(fā)生泄漏输拇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一贤斜、第九天 我趴在偏房一處隱蔽的房頂上張望淳附。 院中可真熱鬧,春花似錦蠢古、人聲如沸奴曙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洽糟。三九已至,卻和暖如春堕战,著一層夾襖步出監(jiān)牢的瞬間坤溃,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工嘱丢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留薪介,地道東北人。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓越驻,卻偏偏與公主長得像汁政,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子缀旁,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 注:本篇文章只為方便查看记劈,特此保留,如有冒犯并巍,敬請諒解D磕尽!懊渡! 本文目標 30分鐘內(nèi)讓你明白正則表達式是什么刽射,并對它...
    阿杰Alex閱讀 1,486評論 0 10
  • 正則表達式到底是什么東西?字符是計算機軟件處理文字時最基本的單位剃执,可能是字母誓禁,數(shù)字,標點符號忠蝗,空格现横,換行符,漢字等...
    獅子挽歌閱讀 2,150評論 0 9
  • 目錄 第一章 正則表達式字符匹配攻略 第二章 正則表達式位置匹配攻略 第三章 正則表達式括號的作用 第四章 正則表...
    Albert_w3閱讀 448評論 0 2
  • 將情懷種植在心間 這一場美麗的邂逅 縱然只是一個夢境 也足以令你陶然驚喜 隨意或者經(jīng)意 有情或者無情 這里的某個瞬...
    夢雙眸閱讀 200評論 2 12
  • Nginx 與 Apache 的比較 Apache 穩(wěn)定阁最、開源戒祠、跨平臺,但它太重速种。在 Apache 服務器上姜盈,如果...
    15d843cd48a8閱讀 1,308評論 0 0