JS備忘 - 正規表達式

  • ^ 匹配字串的開頭
  • $ 匹配字串的結尾
  • ^rabbit:以 rabbit 開頭的字串。
    cute rabbit$:以 cute rabbit 結尾的字串。
    ^rabbit$:以 rabbit 開頭、以 rabbit 結尾的字串,即 rabbit。
    rabbit:包含 rabbit 的字串。

  • * 零個以上(相當於{0,}
  • + 一個以上(相當於{1,}
  • ? 零個或一個(相當於{0,1}
  • 注:其效用只限於符號前的那個字。
    ab*:以 a 開頭,後面為零個以上的 b 所組成的字串(即 a、ab、abb、abbb...)。
    ab+:以 a 開頭,後面為一個以上的 b 所組成的字串(即 ab、abb、abbb...)。
    ab?:以 a 開頭,後面為零個或一個 b 所組成的字串(即 a 或 ab)。
    a?b+$:以「零個或一個a,再加上一個以上的 b」結尾的字串。

  • { } 指定字符的數量
  • ab{2}:a 後面二個 b(即 abb )。
    ab{2,}:a 後面二個以上的 b(如:abb、abbbb)。
    ab{3,5}:a 後面三至五個 b(即 abbb、abbbb、abbbbb)。

  • ( ) 多個字符組成的字符組
  • a(bc)*:a 後面零個或一個 bc(即 a 或 abc)。
    a(bc){1,5}:a 後面一至五個 bc(即 abc、abcbc……abcbcbcbcbc)。

  • | 指「或」
  • rabbit | bunny:含有 rabbit 或 bunny 的字串。
    (a | bc)de:含有 ade 或 bcde 的字串。
    (a | b)*c:含有零個以上的 a 或 b,再加一個 c 的字串。

  • . 代表所有單一字符
  • a.[0-9]:a 後加一個字符,再加一個0到9的數字。
    ^.{3}$:以三個任意字符組成的字串。

  • [ ] 只從方括號內選取一個單一字符
  • [ab]:一個 a 或一個 b(等同於 a|b)。
    [a-d]:一個 a 至 d 的字符(等同於 a|b|c|d[abcd])。
    [a-zA-Z]:任一個大寫或小寫的英文字母。
    ^[a-zA-Z]:以任一英文字母開頭的字串。
    [0-9]%:含有「x%」的字串。
    ,[a-zA-Z0-9]$:以「逗號,再加一個數字或字母」結尾的字串。

  • [^ ] 方括號內,前面加上 ^ 表示排除括號內字符
  • %[^a-zA-Z]%:含有「二個百分號中間有一個非字母」的字串。

    注:方括號內所有特殊字符,都不再具有原本的功能性,視為一般字符。
    [*\+?{}.]:含有括號內字符的字串。

    注:若清單含有「]」,最好置於第一位(排除時,則置於 ^ 後)。
    若含有「-」,最好置於最前或最後,或一個範圍的第二個結束點。

    [a-d-0-9] 字母與數字間的「-」也算在選取範圍內。

  • \b 字詞邊界(即一個字的開頭或結尾)。
  • \B 非字詞邊界(即一個字的中間)。
  • tion\b 能匹配「diction」,不能匹配「dictionary」。
    tion\B 能匹配「dictionary」,不能匹配「diction」。

  • \d 單個數字。等同於 [0-9]
  • \D 排除單個數字。等同於 [^0-9]

  • \r 取自 Return。源自於打字機上頭的滑動輥筒架(捲紙用,邊打會邊往左移)往右歸復,稱為 Carriage Return,相當把游標移到最左邊。
  • \n 取自 New line,即換行。打字機要換行時,分為兩個動作,一個是將輥筒架往右歸位,另一個是輥筒架會把紙往上捲動一些。因此 windows 中的完整換行相當於 \r\n。

  • \w 包括字母、數字、底線。等同於 [A-Za-z0-9_]
  • \W 排除字母、數字、底線。等同於 [^A-Za-z0-9_]

  • \u萬國碼 萬國碼(unicode)為四個十六進位的字。
  • \u00A9 指版權符號 ©。

沒有留言:

張貼留言