wiki:wade/regularExpress

Version 20 (modified by wade, 15 years ago) (diff)

--

Regular Express 正規表示式,含 vim 用法

特殊符號

需在符號前加上 \

/ ^ . & * \

windows 換行符號

\r 或 \r\n
符號 等同於 意義
\w
\W
\d
\D
\s
\S

[] 集合字完

包含 [] 內的集合字元。

  • example:aaa、aba、aca、ada、abc,要將 abc 以外的字串全選出。
  • answer:
    a[abcd]a
    

選取連續字元時用 - 分隔。

  • example:aaa、aba、aca、ada、abc,要將 abc 以外的字串全選出。
  • andwer:aaa、aba、aca、ada
    a[a-c]a
    

選取連續數字。

  • example:a1ab、a9ab、a5ab、a0ab、aaab,要將數字後接 ab 的字串全選出。
  • andwer:1ab、a9ab、a5ab、a0ab
    [0-9]ab
    

^ 反向選擇、前置字元

不要包含 ^ 後的字元。

  • example:aaa、baa、caa、daa,不要選 a 或 b 後面接 aa 的字串。
  • andwer:caa、daa
    [^ab]aa
    

以 ^ 後的字元為開頭。

  • example:aaa、baa、caa、daa,不要選開頭是 a 跟 b 的字串。
  • andwer:
    [^ab]aa
    

. 任意字元

  • example:要選取下列中兩個 / 內所包含的字元。
    12345/asdf#$%#$%#@$%&*)&(^*sadf/123312SDF
    
  • andwer:
    \/.*\/
    

vim

變數處理

將符合規則的字串做為變數使用:

  • example:要將 abc.jpg 改為 abc.txt。
  • answer:將第二個 \( 與 \) 內所包含的字元做為 \1 的變數,第二個 \( 與 \) 內所包含的字元做為 \2 的變數。
    :1,$s/\(abc.\)jpg/\1txt/g
    

記錄 macro recoard and play

在第一行產生連續數字

:r !seq -w 1 100