最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

oeasy教您玩轉(zhuǎn)vim - 54 - # 匹配替換

2021-10-14 07:56 作者:oeasy  | 我要投稿

查找細(xì)節(jié)

回憶上節(jié)課內(nèi)容??

  • 我們學(xué)習(xí)了

    • 替換 substitude

  • 替換單行

    • :s/shiyanlou/oeasy

  • 加上range

    • :3,5s/shiyanlou/oeasy

    • :%s/shiyanlou/oeasy

  • 加上flag

    • :3,5s/shiyanlou/oeasy/g 多個(gè)替換

    • :3,5s/shiyanlou/oeasy/gc 多個(gè)替換且逐個(gè)確認(rèn)

  • 替換還是很方便的

  • 但是我想替換中使用正則表達(dá)式

  • 可以么???

  • 先回憶一下正則表達(dá)式模式匹配

模式 - 列舉字符

  • [abcd]

    • 表示匹配方括號(hào)中列舉的

    • 任意一個(gè) 字符

    • abcd 中的任意一個(gè)字符

  • [a-z]

    • 可用 中劃線-` 表示字符范圍來(lái)減少列舉的

    • [a-d] 等價(jià)于 [abcd]

  • [^abcd]

    模式 - 常用符號(hào)

    • 表示匹配除方括號(hào)中字符以外的任意字符

    • 除了 abcd 之外的任意字符

  • .

    • 等價(jià)于 [^\n]

    • 除了換行符 ( \n ) 以外,表示匹配任意一個(gè)字符

  • \l

    • 等價(jià)于 [a-z]

    • 表示匹配 任意一個(gè)小寫字母

    • 意思是lowercase

  • \L

    • 等價(jià)于 [^a-z]

    • 表示匹配 任意一個(gè)除小寫字母外的其他字符

  • \u

    • 等價(jià)于 [A-Z]

    • 表示匹配 任意一個(gè)大寫字母

    • 意思是uppercase

  • \U

    • 等價(jià)于 [^A-Z]

    • 表示匹配 任意一個(gè)除大寫字母外的其他字符

  • \w

    • 等價(jià)于 [0-9A-Za-z_]

    • 表示匹配 任意一個(gè)字母、數(shù)字、下劃線

  • \W

    • 等價(jià)于 [^0-9A-Za-z_]

    • 表示匹配 任意一個(gè)字符除了字母、數(shù)字、下劃線。

  • \d

    • 等價(jià)于 [0-9]

    • 表示匹配 任意一個(gè)數(shù)字

  • \D

    • 等價(jià)于 [^0-9]

    • 表示匹配 任意一個(gè)除數(shù)字外的其他字符

  • \x

    • 等價(jià)于 [0-9A-Fa-f]

    • 表示匹配 任意一個(gè)十六進(jìn)制數(shù)字

  • \X

    • 等價(jià)于 [^0-9A-Fa-f]

    • 表示匹配 任意一個(gè)除十六進(jìn)制數(shù)字外的其他字符

  • \s

    • 包括兩種分隔符

    • 空格tab

幫助手冊(cè)

起止標(biāo)記

  • 然后我們明確一下起止標(biāo)記

    • ^ ? ? ? ? ? ? ? ?表示匹配 輸入字符串的開始位置 (行首)。

    • $ ? ? ? ? ? ? ? ?表示匹配 輸入字符串的結(jié)束位置 (行尾)。
      ?- \< ? ? ? ? ? ? ?表示匹配 單詞詞首。

    • \> ? ? ? ? ? ? 表示匹配 單詞詞尾。

對(duì)應(yīng)單詞

  • :%s/four/4/g

    • 把所有的four替換為4

  • 但是同時(shí)twenty-four

    • 被替換為twenty-4

  • 這不合理

  • 我們需要`:%s/\<four\>/4/g

    • \<four\>匹配獨(dú)立的four

    • 這樣替換就合理了

單詞匹配

  • 如果我們要替換所有的以a開頭d結(jié)尾的單詞

    • 不允許在詞中進(jìn)行替換oeasy

    • :%s/\<a.*d\>/oeasy/g

  • add、and 被替換

  • band 不被替換

刪除空行

  • 首先我們找到空行 /^$

  • 從開頭 ^ 到結(jié)尾 $ 中間沒(méi)東西

  • 找到了以后,我們來(lái)替換

    • %s/^$//這并不能刪除

    • 刪完了之后空行還是存在

  • 我們可以使用g命令

    • :g/^$/d

  • 如果開頭結(jié)尾之間有空格怎么辦?

    • /^\s*$ 先找到匹配

    • \s表示空格和tab

    • *表示0-任意多個(gè)空格或者tab

    • :g/^\s*$/d

轉(zhuǎn)義字符

  • 如果我們要?jiǎng)h除所有//開頭的行

    • 這個(gè)/需要轉(zhuǎn)義

    • 先搜索/^//.*$

  • :%s/^\/\/.*$//g

    • 刪除了注釋內(nèi)容

    • 但是但空行還在

  • :g/^\/\/.*$/d

    • 刪除了空行

    • 但是開頭有空格和tab的無(wú)法刪除

  • :g/^\s*\/\/.*$/d

    • \\ 前面有空格和tab的也刪除了

總結(jié)

  • 進(jìn)行了模式匹配批量替換的的操作

  • 替換單詞

    • :%s/\<a.*d\>/oeasy/g

  • 轉(zhuǎn)義字符

    • %s/^\/\/.*$/d

  • 刪除空行

    • :g/^\s*$//d

  • 刪除注釋行

    • :g/^\s*\/\/.*$/d

  • 替換還有一些什么玩法嗎???

  • 下次再說(shuō) *

[Github地址] (https://github.com/overmind1980/oeasyvim)
[Gitee地址] (https://gitee.com/overmind1980/oeasyvim)
[藍(lán)橋?qū)嶒?yàn)樓 邀請(qǐng)碼FJWYIMGB] (https://www.lanqiao.cn/courses/2840)


oeasy教您玩轉(zhuǎn)vim - 54 - # 匹配替換的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
平凉市| 红河县| 恭城| 东海县| 公主岭市| 郁南县| 抚宁县| 竹山县| 县级市| 祥云县| 炉霍县| 蓝山县| 石城县| 沙坪坝区| 淮南市| 益阳市| 连云港市| 云霄县| 长垣县| 蛟河市| 临潭县| 阳原县| 攀枝花市| 垦利县| 鲁山县| 博野县| 马尔康县| 辛集市| 梁平县| 乃东县| 龙泉市| 乌审旗| 拜城县| 米易县| 高阳县| 孝感市| 信阳市| 宜丰县| 璧山县| 古交市| 巴马|