正則表達式學習方法及筆記


    最近參加了百度ife的前端培訓,在完成task0002的過程中要求學會正則表達式,曾經在javascript的教學圖書中有看過正則表達式,但都講的不夠系統,自己也不夠重視,所以就幾乎是正則表達式零基礎。於是花了不到一個晚上的時間把《入門正則表達式》看完了,一百多頁,比網上的大多數教程系統,入門足矣。

    首先推薦兩個在線測試正則的網站,邊學邊測試反復實踐當然學的更快了。

     http://regexpal.com/

     http://regexr.com/

    個人更喜歡用第二個,功能更加齊全,而且界面更美觀一些。

     MDN正則表達式  這個這教程結合書使用效果更加。

 以下是我在Evernote上整理的讀書筆記,由於是按自己學習的狀態整理所以有些簡單不系統,更加建議看書

     元字符(metacharacter)是在正則表達式中有特殊含義的字符,也是保留字符。[0-9]這種形式的正則表達式稱作字符組(character class)。

     \d可以像[0-9]一樣匹配任意阿拉伯數字這種正則表達式叫做字符組簡寫式(character shorthand),也叫轉義字符(character escape)。

     使用\D匹配任何一個非數字字符,會匹配空格,字母和標點符號。

     .是一個通配符,可以匹配任意字符(但某些情況下不能匹配行起始符)。

     脫字符^匹配行起始位置

     美元$匹配行結束位置
     豎線符|表示選擇,也就是從多個可選項中選擇一個。
     \w只匹配字母,數字,下划線
     x(?=y)  匹配’x’僅僅當’x’后面跟着y 正向肯定查找
     x(?!y)  匹配’x’ 僅僅當’x’后面不跟着’y’,這個叫正向否定查找
 
使用量詞
    {3}花括號中的數字表示帶查找的數字出現的次數。包含數字的花括號是一種量詞(quantifier)。花花括號本身用做元字符。
      ?也是一種量詞表示連字符是可選的,連字符可以不出現或只出現一次。還有其他的量詞,例如加號(+)表示“一個或多個”,星號(*)表示“零個或多個”。
      懶惰量詞在普通量詞后面加一個?可以使它匹配最少
      占有量詞在普通量詞后面加一個+
 
邊界
      就像^和$一樣,\b是一個零寬度斷言,表面上它會匹配空格或者是行起始,而實際上它匹配的是不存在的東西。
      \B匹配非單詞邊界。
     
選擇,分組和后向引用
      舉例:先將一個\d放在一對圓括號中,這樣就將它放入了一個分組中,后面可以用\1來對捕獲的內容進行后向引用。
      (\d)\d\1可以匹配707等前后兩個數相等的三位數。
      當一模式的全部或則部分內容由一對括號分組時,它就對內容進行捕獲並臨時存入內存中。可以通過后向引用重用捕獲的內容,形式為:\1 或 $1。
      (?:x)    匹配’x’但是不記住匹配項。這種被叫做非捕獲括號。匹配到的自字符串不能通過數組的[1],...,[n]進行訪問。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM