正则表达式匹配替换多次(javascript)

时间:2017-02-08 08:52:42

标签: javascript regex

我必须规范化删除部分文本的文件。 从文件中提取的示例字符串如下:

/fields/s/WinSpc/winspc/;
/fields/s/ROCKET PROJECT/rocket_project/;
/fields/s/PROJECT_Nexus/project-nexus/;

目标应为:

[fields:winspc:defect]
a=b
b=c
hello=hi
[fields:rocket_project:ticket]
description=Descrtiption
status=status
[fields:project-nexus:defect]
title=summary
priority=Priority_hello

我找到了符合我要求的正则表达式:

"a":{"$":"word"}, "b":{"$":"100"}, "c": {"$":"2017-02-08T16:20:36+13:00"}

但是当我进行替换时(在stackoverflow中找到类似的代码):

"a":"word","b":"100","c":"2017-02-08T16:20:36+13:00"

我遇到问题,只有第一场比赛被替换,并且#34;}"处理不当。

var regex = /{"\$":(.*)"}/g;

完整代码和控制台日志下方:

let targetString = sourceString.replace(regex, "$1");

jsonN:" a":{" $":" word"}," b":{" $ ":" 100"}" C" {" $":" 2017-02-08T16:20:36 + 13 :00"}

jsonS:" a":"字" } ," b": {" $& #34;:" 100"} 下," C":的 {" $":" 2017-02-08T16 :20:36 + 13:00

干杯,乔瓦尼

1 个答案:

答案 0 :(得分:0)

尝试使用:

const targetString = data.replace(/\s*{".*?"\s*:\s*"(.*?)"}\s*/g, `"$1"`)

\s*用于删除所有额外的间距。