首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带括号的regex替换多个匹配项

使用带括号的regex替换多个匹配项
EN

Stack Overflow用户
提问于 2021-04-22 05:44:03
回答 1查看 34关注 0票数 0

我有一个字符串abc/0/def/0

并希望将其更改为此格式的abc[0].def[0]

此外,它并不总是0可以是任何数字

我正在研究使用正则表达式进行替换

这实际上是希望将jsonPointer格式转换为jsonPath格式

EN

回答 1

Stack Overflow用户

发布于 2021-04-23 01:45:08

我不确定这是不是你想要的,因为我并没有真正和jsonPointer & jsonPath合作过,但是下面是:

代码语言:javascript
复制
let str = 'abc/0/def/0';

let sub = str.replace(/\/(\d)\//g, "[$1].");
sub = sub.replace(/\/(\d)/g, "[$1]");

console.log(sub); // abc[0].def[0]

这可能不是最好的解决方案,因为我在这里使用了两个替代品。但它是有效的。解释:

第一个替换是匹配任何被斜杠包围的数字,就像你例子中的/0/。它将斜杠替换为[],并在第二个括号后添加点。这样,abc/0/就变成了abc[0].

第二个替换匹配前面只有一个斜杠(后面没有斜杠)的任何数字。它只是删除了斜杠,并在数字周围添加了括号。这将用def[0]替换def/0

当然,这个解决方案适用于任何数字,比如abc/3/def/6abc/6/def/3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67203870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档