Vim下使用正規表示法來搜尋文字
Refernece :
1. http://blog.roodo.com/rocksaying/archives/2670695.html
2. http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/RegularExpression.htm
3. http://en.wikipedia.org/wiki/Regular_expression
會寫這篇這個文章,主要是常常使用Vim再做搜尋特定文字或字串取代的時候,如果搜尋的Pattern沒有給的很精確的時候,常常會找錯地方或是字串取代不對的地方,所以正規表示法就很重要了,而且正規表示法在很多地方都會用到,值的花時間去學習。
目前寫的東西不夠多,以後有學到更多的話再繼續寫。
P.S. 在vim要做搜尋時請記的在記的先按[ESC]再按/
這部份的資訊轉貼至Ref. 2的網站
. 符合任一字元
\d 等於 [0-9] 數字
\D 等於 [^0-9] 非數字
\s 等於 [ \t\n\x0B\f\r] 空白字元
\S 等於 [^ \t\n\x0B\f\r] 非空白字元
\w 等於 [a-zA-Z_0-9] 數字或是英文字
\W 等於 [^a-zA-Z_0-9] 非數字與英文字
[abc] a、b或c
[^abc] 非a、b、c的其它字元
[a-zA-Z] a到z或A到Z(範圍)
[a-d[m-p]] a到d或m到p(聯集)
[a-z&&[def]] d、e或f(交集)
[a-z&&[^bc]] a到z,除了b與c之外(減集)
[a-z&&[^m-p]] a到z且沒有m到p(a-lq-z)(減集)
[a | b] a 或 b
X 代表字元或任何pattern
X? X出現一次或完全沒有
X* X出現零次或多次
X+ X出現一次或多次
X{n} X出現n次
X{n,} X出現至少n次
X{n,m} X出現至少n次,但不超過m次
Example
--------------------------------------------------------------------------------------------
1.
0x00006 -> 0x000ac
0x00000 -> 0x00000
Pattern:
/\(0x[0-9abcdef]*\)\ ->\ \(0x[0-9abcdef]*\)
2.
[ 0.330134] AppArmor: AppArmor Filesystem Enabled
[ 0.330144] pnp: PnP ACPI init
[ 0.330162] ACPI: bus type pnp registered
Pattern:
/\[\s*0.33[0-9]*\]
這個pattern主要抓黃色的部位,然後利用\s來match空白的部份
3.
/devices/platform/i8094/:123
Pattern:
/\(\/\w*\)
1. http://blog.roodo.com/rocksaying/archives/2670695.html
2. http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/RegularExpression.htm
3. http://en.wikipedia.org/wiki/Regular_expression
會寫這篇這個文章,主要是常常使用Vim再做搜尋特定文字或字串取代的時候,如果搜尋的Pattern沒有給的很精確的時候,常常會找錯地方或是字串取代不對的地方,所以正規表示法就很重要了,而且正規表示法在很多地方都會用到,值的花時間去學習。
目前寫的東西不夠多,以後有學到更多的話再繼續寫。
P.S. 在vim要做搜尋時請記的在記的先按[ESC]再按/
Metacharacter
--------------------------------------------------------------------------------------------這部份的資訊轉貼至Ref. 2的網站
. 符合任一字元
\d 等於 [0-9] 數字
\D 等於 [^0-9] 非數字
\s 等於 [ \t\n\x0B\f\r] 空白字元
\S 等於 [^ \t\n\x0B\f\r] 非空白字元
\w 等於 [a-zA-Z_0-9] 數字或是英文字
\W 等於 [^a-zA-Z_0-9] 非數字與英文字
[abc] a、b或c
[^abc] 非a、b、c的其它字元
[a-zA-Z] a到z或A到Z(範圍)
[a-d[m-p]] a到d或m到p(聯集)
[a-z&&[def]] d、e或f(交集)
[a-z&&[^bc]] a到z,除了b與c之外(減集)
[a-z&&[^m-p]] a到z且沒有m到p(a-lq-z)(減集)
[a | b] a 或 b
X 代表字元或任何pattern
X? X出現一次或完全沒有
X* X出現零次或多次
X+ X出現一次或多次
X{n} X出現n次
X{n,} X出現至少n次
X{n,m} X出現至少n次,但不超過m次
Example
--------------------------------------------------------------------------------------------
1.
0x00006 -> 0x000ac
0x00000 -> 0x00000
Pattern:
/\(0x[0-9abcdef]*\)\ ->\ \(0x[0-9abcdef]*\)
2.
[ 0.330134] AppArmor: AppArmor Filesystem Enabled
[ 0.330144] pnp: PnP ACPI init
[ 0.330162] ACPI: bus type pnp registered
Pattern:
/\[\s*0.33[0-9]*\]
這個pattern主要抓黃色的部位,然後利用\s來match空白的部份
3.
/devices/platform/i8094/:123
Pattern:
/\(\/\w*\)
留言