我正在尝试搜索并替换我的文件。
示例:
[{"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"}}]
我需要搜索:“genre”:8并替换或添加:“genre”:[8]
Use:
:g/"genre": \d/s//[&]/g
但问题:[“类型”:8]任何人都知道如何解决这个问题?
感谢。
答案 0 :(得分:3)
尝试以下方法:
:%s/\("genre": \)\(\d\d*\)/\1[\2]/g
这使用捕获组,替换中的\1
指的是组\("genre": \)
,替换中的\2
指的是\(\d\d*\)
。请注意,我将其从\d
更改为\d\d*
,以便它也匹配多个数字,否则"genre": 80
之类的内容将被"genre": [8]0
替换。
答案 1 :(得分:2)
此行应解决您的问题:
:%s/"genre": \zs\d\+\ze/[&]/g
\zs and \ze
使替换仅匹配"genre":(one space)
后面的数字。因此替换只需使用&
。
:h \zs
:h \ze
了解详情