0

我正在尝试在我的文件中搜索和替换。

例子:

[{"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]有人知道如何解决这个问题吗?

谢谢。

4

2 回答 2

3

尝试以下操作:

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

这使用捕获组,\1替换中的 指的是组\("genre": \)\2替换中的指的是\(\d\d*\). 请注意,我将其从 just 更改\d\d\d*以便它也可以匹配多个数字,否则类似的东西"genre": 80会被替换为"genre": [8]0.

于 2013-04-09T21:35:16.863 回答
2

此行应该可以解决您的问题:

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

\zs and \ze使替换只匹配后面的数字"genre":(one space)。这样就可以简单地使用&.

:h \zs
:h \ze

详情

于 2013-04-09T21:38:16.563 回答