首页 > 解决方案 > Javascript 正则表达式:如何删除与 | 之后的任何文本匹配的 JSON 值 包含?

问题描述

所以我在这样的多行字符串中保存了一堆 xpath,anychar用来表示任何字符:

anychar anychar 
anychar //chairs|//desks anychar //a
{"ignore|pipe": "//books|//*[@id=\"test\"]|//something"} anychar //b

我期望:

anychar anychar 
anychar //chairs anychar //a
{"ignore|pipe": "//books"} anychar //b

基本上我想|//anyvalue在文本的任何地方删除所有多余的

这是我的尝试:text.replace(/ *|//(*?)/g, "");

我不知道如何让它专门寻找|//chars

标签: javascriptregex

解决方案


您需要转义正则表达式中的所有特殊字符以按字面意思对待它们。

text.replace(/ *\|\/\/.*?"}/g, '"}');

我们需要"}在最后匹配并将其放回替换中。

演示

这也可以使用前瞻来完成。


推荐阅读