如何使正则表达式替换json文件中的键的值

Boe*_*oel 1 regex

我想制作一个正则表达式,以便可以对具有许多对象的json文件执行“搜索/替换”。每个对象都有一个包含URL的名为“ resource”的键。

看下面的例子:

"resource":"http://www.img/qwer/123/image.jpg"

"resource":"io.nl.info/221/elephant.gif"

"resource":"simgur.com/icon.png"
Run Code Online (Sandbox Code Playgroud)

我想做一个正则表达式,用这样的字符串替换整个url:img / filename.format

这样,结果将是:

"resource":"img/image.jpg"

"resource":"img/elephant.gif"

"resource":"img/icon.png"
Run Code Online (Sandbox Code Playgroud)

我只是从正则表达式开始,我完全迷失了。我当时想一个有效的主意是写一些以这种“资源”模式开头的东西:”

并以最后五个字符结尾。但我什至不知道如何尝试。

我该如何写正则表达式?

提前致谢!

Boh*_*ian 6

尝试这个:

Find: "resource":\s*"[^"]+?([^\/"]+)"
Replace: "resource":"img/\1
Run Code Online (Sandbox Code Playgroud)

使用[^"]+?确保匹配不会滚动到当前条目的末尾并吞噬过多的输入,并且它不愿意(添加?),因此可以获取整个图像文件名(而不是最后一个字符)。

编辑:

我在您的pastebin拥有的键之后添加了可选的空格。

使用您的pastebin 观看此正则表达式的实时演示


abc*_*123 5

正则表达式

.*\/
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

调试演示

这将找到您要替换的文本。如果您想查找整个文本,请将其替换为img/您需要查找以下正则表达式:

("resource":").*\/
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

调试演示

然后用它替换$1img/应该给你组 1 和 img 部分。

如果有任何问题请告诉我

注意:我个人只会使用对象,因为您拥有 JSON 并将其解析为对象,然后迭代对象并独立更改每个对象上的每个资源,而不是寻找灵丹妙药