【问题标题】:Regex find and replace all words正则表达式查找并替换所有单词
【发布时间】:2013-12-03 21:38:15
【问题描述】:

Reg-ex 总是让我感到困惑,而且超级简单的语法很难用 Google 搜索。我在这里严格使用 reg-ex 查找和替换不需要任何语言来做一些 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"
    }
]

同样,数字是可选的,但如果知道如何将它们双引号括起来就好了。

额外:我隐约记得不久前做过类似的事情,但找不到我在哪里找到该信息。这将是一个很好的参考。有没有人有任何关于正则表达式基础知识的好链接,我只是想在处理大量数据时节省时间。谢谢。

【问题讨论】:

  • 您应该标记语言以获得更多曝光,以便用户知道您使用的是哪种语言。
  • 我标记了 find-and-replace,它实际上更改了它以供我替换,但是您指的是 json 或我正在使用的 javascript 是什么语言?这些真的不重要吗?大多数文本编辑器都带有查找和替换功能,并带有允许更轻松的代码编辑的 reg-ex 选项。那就是我将使用正则表达式的地方
  • 如果重要的话使用崇高的文本?我只想要一些简单的查找语法,然后用语法进行一些简单的替换。我以前用过简单的语法,但是太简单了,很难找到哈哈。
  • javascript 是一个很好的曝光标签,如果你正在使用的话。
  • 满足您的所有正则表达式需求:visibone.com/regular-expressions

标签: regex replace


【解决方案1】:

尝试类似的方法:

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

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

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

【讨论】:

  • 谢谢,我觉得这看起来更清楚了,但看起来仍然令人困惑,让我也试试这个,感谢演示!
  • 我真的很喜欢它解释正则表达式的链接...这很酷 1+ 也许我可以在这里学到一点。
  • 为网站添加书签,相信它会派上用场。它在网站上运行良好,我无法让它在崇高的情况下工作,可能是我正在做的事情。我刚刚将我的 json 粘贴到该站点,它运行良好。
  • 我很高兴它成功了。如果您想了解更多信息,请使用调试器查看正则表达式的工作方式:regex101.com/r/rJ5qL5/#debugger -- 顺便说一句,我让它在 sublime 中工作。
  • 谢谢我,正则表达式看起来很混乱,但我敢打赌它还不错,它非常有用,所以谢谢。
【解决方案2】:

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

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

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

可能会成功,尽管您想手动检查任何引用的引号..

【讨论】:

  • 很酷,谢谢,正则表达式很强大,但看起来很混乱,我认为代码中有一张脸在微笑。让我试试,打赌它有效。
  • 我无法让它工作,可能没有提供足够的规格。我会继续尝试 1+,因为我敢打赌这行得通,只是在做一些愚蠢的事情。
猜你喜欢
  • 1970-01-01
  • 2019-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-06
  • 2017-02-03
相关资源
最近更新 更多