基本上,我想在所有属性名称的前后添加引号。

propertyName: {
  anotherProperty: "ksdfjslkdfjklsjf",
  someOtherProperty: "aklsjdfljsfdkj"
}

我尝试了以下各种变化,但都无济于事:

:%s/A-Za-z:/"A-Zaz-z"

任何帮助,将不胜感激。 另外,我想对正则表达式更精通。 最好的方法是什么?

#1楼 票数:3 已采纳

尝试使用捕获:

%s/\([A-Za-z]\+\)\ze:/"\1"/g

结果将是:

"propertyName": {
  "anotherProperty": "ksdfjslkdfjklsjf",
  "someOtherProperty": "aklsjdfljsfdkj"
}

\\(regex\\)是捕获组。 内部匹配的所有内容都可以通过\\n重用。 其中n是组索引。 在我的示例中,我只有一个捕获组,因此以后使用\\1

\\ze表示比赛结束,因此我保留了冒号:

更新

实际上,@ lcd047解决方案更好,更短。 对于属性名称, \\w更可取,因为它们可能包含数字和下划线:

%s/\w\+\ze:/"&"/

\\w等于使用[0-9A-Za-z_]

  ask by Michael P. translate from so

未解决问题?本站智能推荐:

2回复

Vim正则表达式查找丢失的JSON元素

我有一个很大的JSON文件,格式为多行。 我想找到没有给定属性的对象。 确保对象不包含任何其他嵌套对象。 假设给定的属性为"bad" ,那么我想在下面的第二个元素中找到"foo"的值(但不在第一个元素中)。 我知道Vim中的多行正则表达式,但是我什么也做不了。 有指针吗?
1回复

Vim正则表达式每隔几行添加大括号

我正在创建一个json文件,并且已经弄清楚了如何在适当的行上添加双引号等,但是我需要知道如何将每2行用大括号括起来。 例如: 需要是: 我已经尝试过:%norm和:%s并且在这里转了一圈。 任何想法表示赞赏!
1回复

正则表达式:如何将CSV数据转换为JSON数组?

如何使用正则表达式将csv字符串转换为JSON数组? 我正在尝试将正则表达式与Vim或Sublime Text等文本编辑器一起使用,而不是与编程语言一起使用。 仅供参考,Sublime Text使用Boost语法 。 如果我有一组这样的csv字符串: 上面的字符串应采用以下格式:
1回复

Vim:更正格式错误的JSON文件

背景: 我有一大堆格式不正确的大型JSON文件。 我想使用vim命令更正格式,使它们全部为有效的JSON。 有关JSON文件的问题: 这些JSON文件中的所有键都不用" 。 有没有,在非最后一个JSON条目的末尾。 输入(无效的JSON): 输出(有效JSON):
4回复

VIM:在双引号内交换json值

我需要使用VIM编辑器在多行上交换json文件中的标签和值。 例如: {"value":"PAE","tag":"project:aerospace;id:3364"} {"value":"#cybersecurity","tag":"project:aerospace;id:3178"}
3回复

将特定格式的纯文本转换为VIM中的JSON

我所有的大学笔记都是JSON格式,当我从pdf中收到一系列实用问题时,其格式如下: 我想做的是将其复制到vim中并执行查找并替换以将其转换为: 在实践过程中试图弄清这一点之后(而不是实际进行实践),这是我得到的最接近的结果: 这三个问题是 我必须在每个问题的末尾加上--end-
1回复

VIM:在双引号中找到所有数字并删除双引号

我不小心格式化了一个大文件。 我有数百个var定义为: 当我真的需要时: 任何人都知道用正则表达式删除这些情况中的双引号吗? 示例数据如下所示: 等等.. 我可以使用以下命令删除第一引号::%s / Order“:” / Order“:/ g 但找不到第二个报价。
4回复

Vim正则表达式反向引用

我想做这个: 为什么shop_(*)匹配任何东西?