2013-04-09 89 views
0

我想搜索並替換我的文件。正則表達式(搜索/替換/添加)VIM

例如:

[{"pk": 1, "model": "blog.post", "fields": {"text": "asdadasdasd", "genre": 8, 
"image": "image/test.jpg", "created_at": "2013-04-09T19:22:45Z", 
"updated_at": "2013-04-09T19:22:45Z", "help": 12, "reference": 12, 
"title": "Test1", "slug": "test-1"}}] 

蔭需要搜索: 「風格」:8和更換或添加: 「流派」:[8]

Use: 
:g/"genre": \d/s//[&]/g 

但問題: 「流派」:8 ] 有人知道怎麼修這個東西嗎?

謝謝。

回答

3

嘗試以下方法:

:%s/\("genre": \)\(\d\d*\)/\1[\2]/g 

這使用捕獲組,在更換\1是指基團\("genre": \),並在更換\2\(\d\d*\)。請注意,我將其從\d更改爲\d\d*,以便它將匹配多個數字號碼,否則類似"genre": 80將被替換爲"genre": [8]0

+0

你好@ F.J感謝工作100%;)1+ – 2013-04-09 21:37:32

2

此行應該解決您的問題:

:%s/"genre": \zs\d\+\ze/[&]/g 

\zs and \ze是替換隻匹配以下"genre":(one space)的數字。所以更換可以簡單地使用&

:h \zs 
:h \ze 

查看詳細

+0

是,我瞭解多一點了。謝謝你的幫助。對不起,我不能聲望。 – 2013-04-09 21:47:12

+0

@SoyLatam你不需要任何聲望。如果答案對您有幫助,您可以點擊向上箭頭(在「0」之上)來註冊。或者如果它解決了您的問題,請通過單擊打勾來接受它作爲正確的答案。 – Kent 2013-04-09 21:59:55