Regex,正則

來源:互聯網
上載者:User

Regex,正則


1.什麼是Regex
  ①檔案路徑萬用字元
    "?"匹配單個字元,"*"匹配零個或多個字元。
  ②Regex
    符合某種規則的運算式
  ③元字元與子匹配
    元字元
    子匹配
      括弧所括起來的運算式部分為一個子匹配(子運算式)

2.RegExp對象
  ①建立
    1)顯示構造器:var regExp = new RegExp("pattern"[,"flags"]);
    2)隱式構造器:/pattern/[flags]

    flags標誌字元:
      g:用作全域標誌()
      i:用作忽略大小寫
      m:用作多行標誌
      
    注意事項:
      當使用顯示構造器的時候,應將原始的Regex模式中的每個"\"都使用"\\"來替換
      var re = new RegExp("\\d{5}");
      var re = /\d{5}/;
  ②RegExp對象的屬性:
      1)靜態屬性:
        index:匹配開始的位置,預設-1
 input:返回當前所作用的字串
 lastIndex:匹配字元的下一個位置,預設-1
        lastMatch:最後一個匹配的字串
 lastParen:子匹配的最後一個,匹配到的字串
 leftContext:最後匹配的字串的左邊的內容
 rightContext:最後匹配的字串的右邊的內容
        $1...$9 子匹配匹配的內容

      2)執行個體屬性:
        global:全域標誌
 ignoreCase:忽略大小寫
 multiline:多行標誌,
        source:返回模式文本
    ③方法
       test(str):檢查一個字串是否滿足Regex,返回TRUE或false,並更新靜態屬性
       exec(str):檢查一個字串是否滿足Regex,返回搜尋數組或null,並更新靜態屬性
         返回數組還有三個屬性index,input,lastIndex
       compile("pattern"[,"flags"]):更換RegExp對象執行個體所使用的Regex

       說明:如果為Regex設定了全域標誌(g),可以多次調用exec和test方法在字串中執行連續搜尋,
       每次都是從RegExp對象的lastIndex屬性指定的位置開始搜尋字串。如果沒有設定全域標誌(g),則exec和
       test方法忽略RegExp對象的lastIndex屬性值,從字串的起始位置開始搜尋。

    ④String對象與Regex有關的方法
       match(RegExp):與exec方法類似,返回一個包含搜尋結果的數組。
       search(RegExp):返回第一個匹配的字串的位置
       replace(RegExp,replaceText):替換滿足匹配的字串並返回替換後的字串
       split([separator[,limit]]):返回拆分數組。
    ⑤Regex文法
       元字元:
         1).限定符:用於指定其前面的字元或組合項連續出現多少次
    n+ 匹配任何包含至少一個 n 的字串。
           n* 匹配任何包含零個或多個 n 的字串。
    n? 匹配任何包含零個或一個 n 的字串。
    n{X} 匹配包含 X 個 n 的序列的字串。
    n{X,Y} 匹配包含 X 或 Y 個 n 的序列的字串。
    n{X,} 匹配包含至少 X 個 n 的序列的字串。
    n$ 匹配任何結尾為 n 的字串。
    ^n 匹配任何開頭為 n 的字串。
    ?=n 匹配任何其後緊接指定字串 n 的字串。
    ?!n 匹配任何其後沒有緊接指定字串 n 的字串。
         2).選擇匹配符(|)
  3).分組組合符:將Regex中的某一部分內容組合起來的符號。
  4).反向引用符:用於匹配前面的分組組合所捕獲的內容的標識符號。
     (pattern):子匹配,緩衝,用反向引用符調用
     \num:num表示分組組合的序號
     (?:pattern):子匹配,但是不會儲存在緩衝區中,不能用反向引用符調用
         5).特殊字元
     .  尋找單個字元,除了換行和行結束符。
     \w 尋找單詞字元。
     \W 尋找非單詞字元。
     \d 尋找數字。
     \D 尋找非數字字元。
     \s 尋找空白字元。
     \S 尋找非空白字元。
     \b 尋找位於單詞的開頭或結尾的匹配。
     \B 尋找不處在單詞的開頭或結尾的匹配。
     \0 尋找 NUL 字元。
     \n 尋找分行符號。
     \f 尋找換頁符。
     \r 尋找斷行符號符。
     \t 尋找定位字元。
     \v 尋找垂直定位字元。
     \xxx 尋找以八位元 xxx 規定的字元。
     \xdd 尋找以十六進位數 dd 規定的字元。
     \uxxxx 尋找以十六進位數 xxxx 規定的 Unicode 字元。
         6).字元匹配符
     [abc] 尋找方括弧之間的任何字元。
     [^abc] 尋找任何不在方括弧之間的字元。
     [0-9] 尋找任何從 0 至 9 的數字。
     [a-z] 尋找任何從小寫 a 到小寫 z 的字元。
     [A-Z] 尋找任何從大寫 A 到大寫 Z 的字元。
     [A-z] 尋找任何從大寫 A 到小寫 z 的字元。
     [adgk] 尋找給定集合內的任何字元。
     [^adgk] 尋找給定集合外的任何字元。
     (red|blue|green) 尋找任何指定的選項。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.