欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

[Vim]搜索模式(正則表達(dá)式)-創(chuàng)新互聯(lián)

本文介紹如何使用Vim的搜索模式。[Vim]搜索模式(正則表達(dá)式)
搜索單詞

Vim中使用 < 和 > 分別表示單詞的開(kāi)頭和結(jié)尾,例如查找單詞 i 而不是字母 i ,在正常模式下,按下 / 啟動(dòng)搜索模式,輸入 <i> ,敲擊回車(chē)即可。

成都創(chuàng)新互聯(lián),專注為中小企業(yè)提供官網(wǎng)建設(shè)、營(yíng)銷型網(wǎng)站制作、成都響應(yīng)式網(wǎng)站建設(shè)、展示型成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)等服務(wù),幫助中小企業(yè)通過(guò)網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷推廣問(wèn)題。

要查找當(dāng)前光標(biāo)覆蓋的單詞,敲擊 * ,Vim會(huì)自動(dòng)啟動(dòng)搜索模式,光標(biāo)移動(dòng)到該單詞下一個(gè)現(xiàn)身位置。

搜索當(dāng)前單詞并連續(xù)修改

假定當(dāng)前光標(biāo)覆蓋的單詞為 foo,按下 * 鍵,Vim 會(huì)搜索并跳轉(zhuǎn)到下一個(gè) foo 的位置,按下 ciw 組合鍵,意思是 change inner word ,此時(shí) foo 會(huì)被刪除,在原位置輸入 bar ,然后按下 Escape 鍵。這就完成了一次搜索并修改,接下來(lái)按 n 鍵繼續(xù)搜索,如果還需要修改,則按下 . 鍵表示重復(fù)修改動(dòng)作,如此反復(fù)完成連續(xù)搜索與修改。

搜索連續(xù)重復(fù)單詞

有時(shí)你可能會(huì)連續(xù)重復(fù)輸入同一個(gè)單詞而不自知,例如以下文本:

1 hello hello
2 world  world
3 thank
4 thank

搜索模式:

(<w+>)\_s*1

以上搜索模式會(huì)匹配文本中的1-4行。在Vim中,使用 ( 和 ) 包括的部分視為一個(gè)原子,其中 (<w+>) 匹配一個(gè)單詞原子,s 匹配空格符和tab符, \_s 匹配空格符、tab符和換行符, \_s* 匹配0次或多次。

搜索A或B

使用 | 表示或邏輯,例如 red|green|blue 匹配字符串(注意不是單詞)red或green或blue。

如果要將匹配的對(duì)象替換成新的字符串,可以使用 :%s/搜索正則/新字符串/g,例如將所有的red或green字符串替換為purple:

:%s/red|green/purple/g

替換所有單詞red或green為單詞purple:

:%s/<(red|green)>/purple/g

Vim具有搜索模式記憶,因此以上命令也可以拆解為兩步:

第一步:搜索單詞red或green:

/<(red|green)>

第二步:將搜索結(jié)果替換為purple:

:%s//purple/g

替換命令中搜索正則為空時(shí),Vim會(huì)直接使用最后一次使用過(guò)的搜索正則作為默認(rèn)表達(dá)式。

有時(shí)我們并不想替換結(jié)果,而是想要對(duì)結(jié)果做一些裝點(diǎn),那么可以使用 & 來(lái)引用搜索結(jié)果,例如以下示例會(huì)將文本中所有的單詞red或green添加上引號(hào):

:%s/<(red|green)>/"&"/g

或者使用分組 1, 2, 3 ... 來(lái)引用搜索結(jié)果:

:%s/<(red|green)>/"1"/g
搜索與替換

:substitute 命令搜索一個(gè)字符串并將其替換為新字符串,以下為一些基本使用方法。

:%s/foo/bar/g
    全文搜索每個(gè)foo并替換為bar。

:s/foo/bar/g
    當(dāng)前行搜索每個(gè)foo并替換為bar。

:%s/foo/bar/gc
    全文搜索每個(gè)foo并替換為bar,替換前需要確認(rèn)。

:%s/<foo>/bar/gc
    全文搜索每個(gè)單詞foo并替換為bar,替換前需要確認(rèn)。

:%s/foo/bar/gci
    全文搜索每個(gè)foo并替換為bar,替換前需要確認(rèn),大小寫(xiě)不敏感。

:%s/foo/bar/gcI
    全文搜索每個(gè)foo并替換為bar,替換前需要確認(rèn),大小寫(xiě)敏感。

標(biāo)記g:表示全局搜索,對(duì)每一個(gè)匹配結(jié)果進(jìn)行操作,缺省標(biāo)記g,則只對(duì)第一個(gè)匹配結(jié)果進(jìn)行操作。
標(biāo)記c:表示操作前需要進(jìn)行確認(rèn)。
標(biāo)記i:表示大小寫(xiě)不敏感。
標(biāo)記I:表示大小寫(xiě)敏感。
搜索分組

使用 ( 和 ) 包圍住表達(dá)式使其成為一個(gè)原子,并根據(jù)原子所處位置順序使用1,2,……來(lái)引用相應(yīng)的匹配結(jié)果。最常見(jiàn)的場(chǎng)景莫過(guò)于對(duì)調(diào)字符串位置,例如:

原文:
1. France VS Germany
命令: :s/(France)(sVSs)(Germany)/321
結(jié)果: 1. Germany VS France
搜索A與B

使用 & 表示與邏輯,例如搜索同時(shí)包含了 red 和 blue 的行。進(jìn)行與邏輯搜索時(shí),Vim按照由 & 分隔的表達(dá)式順序逐一匹配,因此如果開(kāi)啟了高亮匹配結(jié)果的功能,那么你看到高亮匹配的永遠(yuǎn)都是最后一個(gè)表達(dá)式的匹配結(jié)果。

/.*red&.*blue
反向肯定預(yù)查搜索

使用 (expression1)@<=expression2 表示反向肯定預(yù)查搜索模式,其過(guò)程為首先搜索 @<= 右側(cè)的原子即 expression2,遇到匹配項(xiàng)后再檢查匹配結(jié)果左側(cè)是否滿足 expression1。例如以下命令會(huì)搜索多個(gè)冗余0的數(shù)字。

原文:
1.0 1.000 1.0100

命令:
(.d+)@<=0+>

結(jié)果:
匹配了1.000后兩個(gè)0,1.0100后兩個(gè)0。

參考一

參考二

參考三

網(wǎng)站名稱:[Vim]搜索模式(正則表達(dá)式)-創(chuàng)新互聯(lián)
文章起源:http://chinadenli.net/article38/ehppp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作網(wǎng)站制作移動(dòng)網(wǎng)站建設(shè)App開(kāi)發(fā)動(dòng)態(tài)網(wǎng)站響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化