Version 22 (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
- 參考:http://www.thegeekstuff.com/2009/01/vi-and-vim-macro-tutorial-how-to-record-and-play/
- 步驟:
- 開始記錄 macro a。
[ESC] → q → a 按 [ESC] 再按 q 再按 a
- 開始執行你要重複的步驟。
i123[ESC] yyp
- 結束記錄 macro a。
[ESC] → q 按 [ESC] 再按 q
- 重複 a 這個 macro 5 次。
5@a
- 開始記錄 macro a。
在第一行產生連續數字
:r !seq -w 1 100