国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
vim中的正則表達(dá)式

記性不好,才一段時(shí)間不用發(fā)現(xiàn)vim 的東西忘的差不多了。要重新熟悉才行。現(xiàn)從正則表達(dá)式開始,用慣了JavaPython 的正則表達(dá)式,再用Linux 的正則表達(dá)式還真有點(diǎn)不習(xí)慣,而且grepvim 的正則表達(dá)式有些微區(qū)別,grepegrep 的正則表達(dá)式也有一點(diǎn)區(qū)別。用用之前要好好想想才行,太惡心了。

今天現(xiàn)把VIM 的正則表達(dá)式整理一些,過幾天整理grep 的。(補(bǔ)充:grep的正則表達(dá)式在元字符方面和vi差不多,不整理了)

 

vim 的正則表達(dá)式的有兩種模式,magicnomagic ,兩種模式下,元字符是不一樣的。可以通過set mogicset nomagic 進(jìn)行選擇,默認(rèn)是magic 。建議不要亂設(shè)置,就用magic 模式差不多。也可以再Pattern 指定用magicnomagic ,這里不廢話了,下面列出常用的magic 的表達(dá)式。
在vi命令行模式下輸入:
:1, $s/tom/David/g
 ^   ^  ^    ^   ^
 |   |  |    |   |---- global 對(duì)全文有效
 |   |  |    |
 |   |    |--------- 將tom 替換為 David , 使用正則表達(dá)式.
 |   |------- 替換單詞
 |------ 從文件的第一行到文件的最后一行. 

表:
----------------------------------------------------------------------------------------------
  元字符      | 功能            |  例子         |  匹配什么
  ----------------------------------------------------------------------------------------------
  ^      | 錨定行的開始         | /^love/   |  匹配所有以love開頭的行.
  ----------------------------------------------------------------------------------------------
  $      | 錨定行的結(jié)束         | /love$/   |  匹配所有以love結(jié)束的行.
  ----------------------------------------------------------------------------------------------
  .      | 匹配一個(gè)字符         | /l..e/   |  匹配這樣的行, 這些行包含這樣的字符,
      |            |      |第一個(gè)字符是 l,緊跟著兩個(gè)字符,然后是e.
  -----------------------------------------------------------------------------------------------
  *      | 代表0個(gè)或多個(gè)先前字符      | /*love/   |  匹配這樣的行, 有0個(gè)或者多個(gè)空格,空格
      |            |      |候跟著love
  -----------------------------------------------------------------------------------------------
  []      | 匹配字符組中的一個(gè)字符      | /[lL]ove/   |  匹配所有包含love or Love 的行
  -----------------------------------------------------------------------------------------------
  [x-y]      | 匹配以字符范圍組成的組中的一個(gè)字符   | /[A-Z]ove   |  匹配所有這樣的行, 這些行包含如下字符
      |            |      |第一個(gè)字符是從A到Z 中間的一個(gè), 后面跟
      |            |      |著ove
  -----------------------------------------------------------------------------------------------
  [^]      | 匹配一個(gè)不在范圍內(nèi)的字符      | /[^A-Z]ove/   |  匹配所有這樣的行, 這些行包含如下字符
      |            |      |第一個(gè)字符不是從A到Z 中間的一個(gè), 后面
      |            |      |跟著ove
  -----------------------------------------------------------------------------------------------
  \      | 用來(lái)轉(zhuǎn)義一個(gè)字符         | /love\./   |  匹配所有這樣的行, 這些行包含如下字符
      |            |      |love 后面跟著一個(gè)點(diǎn), 通常點(diǎn)是表示任何
      |            |      |字符的通配符.
  -----------------------------------------------------------------------------------------------
  \<       | 錨定單詞的開始         | /\<love/   |  匹配所有這樣的行, 這些行包含以love
      |            |      |開頭的單詞 (vi & grep 都支持這個(gè)功能)
  -----------------------------------------------------------------------------------------------
  \>      | 錨定單詞的結(jié)束         | /<love\>   |  ... ^ ... 以love結(jié)束的單詞 ... ^
  -----------------------------------------------------------------------------------------------
  \(..\)   | 標(biāo)記后面用到的匹配字符      | /\(love\)a\1b | 最多可以使用9個(gè)標(biāo)簽. 第一個(gè)標(biāo)簽是模板
      |            |      |最左邊的部分. 在這例子中, 模板love
      |            |      |保存為標(biāo)簽1, 后面的\1指的就是love;
      |            |      |本例子搜索的是這樣的行, 這些行包含這樣
      |            |      |的字符,在lovea 后面跟著loveb.
 ------------------------------------------------------------------------------------------------
 [NOTE: 各種版本的Unix 以及模板匹配 (pattern-matching) 實(shí)用程序并不都是可信賴的, 通常我們使用 vi & grep]

 

對(duì)前一個(gè)模式的次數(shù)匹配

\*

0 到多次,盡可能多匹配

\+

1 到多次,盡可能多匹配

\=

01 次,盡可能多匹配

\?

01 次,盡可能多匹配

\{n,m}

nm 詞,盡可能多匹配

\{n}

n 次,盡可能多匹配

\{n,}

至少n 次,盡可能多匹配

\{,m}

0m 次,盡可能多匹配

\{}

0 到多次,盡可能多匹配(和\* 一樣)

\{-n,m}

nm 次,盡可能少匹配

\{-n}

n

\{-n,}

至少n 次,盡可能少匹配

\{-,m}

至多m 次,盡可能少匹配

\{-}

0 到多次,盡可能少匹配

 

位置匹配

^

行開頭

\_^

行開頭

$

行末尾

\_$

行末尾

.

換行之外的任何字符

\_.

單個(gè)字符,包括換行符

\<

單詞開始

\>

單詞結(jié)束

\%^

文件開頭

\%$

文件結(jié)束

\%V

可視化區(qū)域內(nèi)部

\%#

光標(biāo)位置

\%'m

標(biāo)記點(diǎn)m,m 可以自己定義的標(biāo)記點(diǎn)( 使用'm)

\%nl

匹配第n 行,n 是一個(gè)數(shù)字

\%nc

匹配第n 列,n 是一個(gè)數(shù)字

常用預(yù)定義字符

\i

標(biāo)識(shí)符字符,如字母數(shù)字下劃線等

\I

\i 相似,但不包括數(shù)字

\f

文件名字符

\F

類似\f ,但不包括數(shù)字

\p

可打印字符

\P

類似\p ,但不包括數(shù)字

\s

空白字符

\S

非空白字符

\d

數(shù)字[0-9]

\D

非數(shù)字[^0-9]

\x

16 進(jìn)制字符[0-9a-fA-F]

\X

16 進(jìn)制字符

\o

八進(jìn)制字符[0-7]

\O

非八進(jìn)制字符

\w

字母[a-zA-Z_0-9]

\W

非字母

\h

單詞開頭字符,比\w 少了數(shù)字

\H

非單詞開頭字符

\a

字母表字符[a-zA-Z]

\A

非字母表字符

\l

小寫字母

\L

非小寫字母

\u

大寫字母

\U

非大寫字符

\_x

X 是上面字符中的一個(gè),\_x\x 多匹配一個(gè)換行符

\t

<Tab>

\n

換行符

\1 \2 \3

n 個(gè)捕獲的組\(\)

 

其他

\(\)

組捕獲

\%(\)

非捕獲組,和\(\) 類似,但不捕獲

\|

分支

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
學(xué)校早這么教正則表達(dá)式,少走多少?gòu)澛?!那個(gè)分組用法震到我了
文本處理三劍客與正則表達(dá)式詳解
shell正則表達(dá)式RE
Linux 正則表達(dá)式詳解
三分鐘教你輕松掌握 grep 命令中的正則表達(dá)式
grep高級(jí)應(yīng)用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服