Javascript Regex匹配JSON键值对的值

时间:2016-05-03 14:35:29

标签: javascript regex

鉴于以下键值对,我如何只匹配值(包括引号)?

解释:我在IDE中进行查找和替换。我有数百个键/值对,其中值需要从字符串更改为对象。所以基本上取代了价值。

"ElevationFilenameIn": "Input raster elevation file",
"TargetCRS": "Target vertical coordinate reference system Type",
"featureName": "The name of the feature to extract, for example \"Vegetation\" or \"Water\"",
"TargetCRScode": "Target vertical coordinate system Code",
"TargetCRSfile": "The projection (.prj) file in shoebox to be used for this inputfile"

My attempt(这不起作用,甚至没有关闭):

[:]\s*(\"\w*\")

4 个答案:

答案 0 :(得分:6)

您可以使用模式:

[:]\s(\".*\")

并在此链接后对其进行测试:https://regex101.com/r/nE5eV3/1

答案 1 :(得分:3)

我想这个人的工作也很顺利。其中一个很好的部分是它没有使用任何捕获组,但与接受的答案相比,它的成本更高。

[^:]+(?=,|$)

Regular expression visualization

Debuggex Demo

Regex101 Demo

答案 2 :(得分:2)

获取价值

[^:"]+(?="})

enter image description here

通过键获取价值

如果您希望选择一个特定的键,可以这样操作:

[^:KEY"]+(?="})

enter image description here

答案 3 :(得分:0)

复杂 JSON 对象中的所有键值参数。

"[a-zA-Z0-9 -]*"(?=:):[a-zA-Z0-9 "-ć]*(?<=")|"[a-zA-Z0-9 -]*"(?=:):[a-zA-Z0-9 "-ć]*(?=,)|"[a-zA-Z0-9 -]*"(?=:):[a-zA-Z0-9 "-ć]*(?=\w+)