正则表达式找到并替换所有单词

时间:2013-12-03 13:26:16

标签: regex replace

Reg-ex总是让我感到困惑,加上超级简单的语法对Google来说很难。我在这里使用reg-ex严格查找和替换不需要任何语言来做一些注册只是想节省时间编辑大量数据:)

我有一个巨大的json文件,这些只是两个数据,但这对这个例子很有用。

[
    {
       name: 'John',
       team: 'Wolves',
       team_id: 1,
       number: 24
    },
    {
       name: 'Kevin',
       team: 'Rockets',
       team_id: 1,
       number: 6
    }
]

在我的json中,我需要在每个键上添加双引号:值对,数字是可选的。

我需要摆脱单引号,然后在所有内容上加上双引号。

最终结果如下所示。

[
    {
       "name": "John",
       "team": "Wolves",
       "team_id": "1",
       "number": "24"
    },
    {
       "name": "Kevin",
       "team": "Rockets",
       "team_id": "1",
       "number": "6"
    }
]

同样,数字是可选的,但知道如何引用这些数字会很好。

额外:我依稀记得做了一段时间这样的事情,但找不到我发现这些信息的地方。这将是一个很好的参考。有没有人与正则表达式的基础知识有任何良好的联系,我只想在处理大量数据时节省时间。感谢。

2 个答案:

答案 0 :(得分:1)

尝试以下内容:

(\w+):\s*('?)([^']+?)\2(?=[\n,])并替换为"\1": "\3"

演示:http://regex101.com/r/pX9xX6

编辑: 刚刚在Sublime中测试过,似乎工作正常。

答案 1 :(得分:1)

嗯,确切的语法取决于工具。如果您使用vim,例如:

:%s/'\([^']*\)'/"\1"/g

:%s/^\([ ^I]*\)\([^ ^I]*\):/\1"\2":/

可能会做到这一点,虽然您想要对任何引用的引号进行手动检查..