2015-11-06 35 views
1

使用記事本+ +,我有一個包含數百行的像一個文件:正則表達式刪除一切,除了我搜索

Updates\Microsoft .NET Framework 2.0 Service Pack 2\KB946503]

Updates\Microsoft .NET Framework 2.0 Service Pack 2\KB946504]

我想找到KB號和更換整個與KB編號的文件,所以它看起來是這樣的:

KB946503

KB946504

到目前爲止,我可以找到使用(?=\b\w+\b)\w*kb\w*的KB號碼,但我不知道要放什麼東西在替代領域,我已經試過\1$1但不起作用! :)

回答

1

使用

^.*\b(KB\d+)\]$ 

而且隨着\1取代。

正則表達式會發現,與KB + digits + ]結束所有線和KBxxxxxx將與\1反向引用到捕獲的子串得到恢復。

enter image description here

如果你只是想找到一個行的最後KBxxxx,使用

^.*\b(KB\d+).*$ 

要將KB前刪除所有文字,使用

^[\s\S]*?\b(KB\d+).*$ 

然而,「尾巴「應該手動刪除。

+0

如果知識庫中的數字是在一個段落中,比如說這個http://snag.gy/JGA8g.jpg,那麼除了知識庫編號之外,我想擺脫整個段落? – Tom

+0

使用'^。* \ b(KB \ d +)。* $'替換爲'\ 1'。 –

+0

這將擺脫包含知識庫編號的行並保留段落的其餘部分,而不是刪除整個段落並保留KB編號? – Tom