第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求一個vim中的正則

求一個vim中的正則

慕田峪7331174 2019-04-16 20:27:05
原始文本簡化如下(好幾個建表語句,有些表中有相同的字段):CREATETABLE`test1`(`field1`int,)ENGINE=InnoDBCREATETABLE`test2`(`field1`int,)ENGINE=InnoDBCREATETABLE`test3`(`field2`int,)ENGINE=InnoDBCREATETABLE`test4`(`field3`int,)ENGINE=InnoDBCREATETABLE`test5`(`field2`int,)ENGINE=InnoDB我需要把表中有field2字段的建表語句選出來,也就是把下面的文本選出來CREATETABLE`test3`(`field2`int,)ENGINE=InnoDBCREATETABLE`test5`(`field2`int,)ENGINE=InnoDB想到了一個正則CREATE\_.\{-}F_class_type\_.\{-}ENGINE,但這個顯然有問題。怎樣加限制條件使選出的文本中只有一個CREATE,這樣選出的就是正確的了。謝謝。自己又查了查,使用否定環(huán)視就可以了。
查看完整描述

2 回答

?
達(dá)令說

TA貢獻(xiàn)1821條經(jīng)驗 獲得超6個贊

又查了一下正則,使用否定環(huán)視就能解決這個問題。
先貼正確的正則:\vCREATE(\_.(CREATE)@!){-}field2\_.{-}ENGINE.*
解釋一下,也方便以后自己查看\v:任何元字符都不用加反斜杠\_.:包括換行符的所有字符(CREATE)@!:順序否定環(huán)視(\_.(CREATE)@!){-}:非貪婪匹配任意字符,并且匹配出的結(jié)果中不含有CREATE字符串
使用否定環(huán)視后就能保證匹配出的結(jié)果只有一個CREATE字符串,也就是匹配結(jié)果不會有多條建表的語句
                            
查看完整回答
反對 回復(fù) 2019-04-16
?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗 獲得超9個贊

另外的思路:用宏應(yīng)該也可以
:vimsome.sql
/field2
qa{V}:w!>>wanted.sql
nq
99@a
前提是每個創(chuàng)建語句行間不能有空行,首尾要有空行,參見:h{
99@a中的99可以通過%/field2//n獲取
                            
查看完整回答
反對 回復(fù) 2019-04-16
  • 2 回答
  • 0 關(guān)注
  • 320 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號