{pattern}
正規表達式
| < > ?
這些符號前面需要加跳脫字元
(?:x)
找出 'x',這動作不會記憶
()
為 group 的意思,檢查時會再 wrap 一次,若有 g
flag 會無效,
?:
代表只要 group 就好,不要 wrap
\<
匹配單詞的開始
\>
匹配單詞的結尾
|
或者
^
匹配輸入的行首
$
匹配輸入的結尾
.
匹配除了換行符號之外的單一字元
\_.
匹配任意單一字元,包含換行
:help ordinary-atom
完整內容參考文件
[]
匹配括號裡的字元
可以搭配 - 符號指定範圍
[A-Z]
匹配大寫 A 到 Z 的字元
[a-z]
匹配小寫 a 到 z 的字元
[1-9]
匹配數字 1-9
[^]
匹配非括號裡的字元
()
說明
匹配 () 裡面的內容,() 需要加跳脫字元
number
() 有分組的功能
等同於第 number 個 () 匹配的內容,可以填1 ~ 9
可做為替換命令使用,number 需要加跳脫字元
延伸
%()
括號不會被捕獲子匹配,\number
將無效
舉例
:s/\(a\) b \(c\)/\2 b \1/
將匹配到的 a b c,替代成 c b a
量詞
{}
匹配次數,{ 前面需要加跳脫字元
指令
+
匹配前面的匹配原1或多次
前面需要加跳脫字元
貪婪匹配模式
*
匹配前一字元 0 至多次
貪婪匹配模式
?
或 =
匹配前面的匹配原0或1次
前面需要加跳脫字元
貪婪匹配模式
:help multi
完整內容參考文件
貪婪匹配
貪婪匹配為盡可能多的匹配 非貪婪匹配為盡可能少的匹配
舉例
aaabaab
/[ab]\+b
匹配 aaabab
/[ab]\{-1,}b
匹配 aaab 和 aab
特殊字元
\\
插入一個反斜線
\_s
匹配一個空白或一行
\_s\+
匹配任意數量的空白或一行
\0
或 &
等同於整個匹配內容
\C
區分大小(放在結尾處)
\D
所有非數字的字元
\L
小寫字母以外的所有字元
\W
等同於 [^0-9A-Za-z_]
\a
一個字母
\b
英文邊界,單字開頭或結尾的空白
\c
不區分大小寫(放在結尾處)
\d
吻合數字,寫法等同於 [0-9]
\l
一個小寫字母
\r
插入一個換行符號
\s
匹配單個空格字符,包括空格,製表符,換頁符,換行符
\t
插入一個 tab 標籤
\u
一個大寫字母
\w
等同於 [0-9A-Za-z_]
\x
等同於 [0-9a-fA-F]
\ze
匹配的結束,其外會被排除高亮,但仍會被查找
\zs
匹配的起始,其外會被排除高亮,但仍會被查找
:help character-classes
完整內容參考文件
Last updated