Javascript 正则表达式在两个子字符串之间查找子字符串

Javascript 正则表达式在两个子字符串之间查找子字符串,javascript,regex,substring,Javascript,Regex,Substring,我看过其他答案,但似乎无法将它们与我的代码匹配。我的字符串包含如下内容: "x": {"field": "Horsepower","type": "quantitative"}, "y": {"field": "Miles_per_Gallon","type": "quantitative"} 我希望能够替换它,使其看起来像: "x": {"field": "...","type": "quantitative"}, "y": {"field": "...","type": "quantita

我看过其他答案,但似乎无法将它们与我的代码匹配。我的字符串包含如下内容:

"x": {"field": "Horsepower","type": "quantitative"},
"y": {"field": "Miles_per_Gallon","type": "quantitative"}
我希望能够替换它,使其看起来像:

"x": {"field": "...","type": "quantitative"},
"y": {"field": "...","type": "quantitative"},
所以我使用的是
str.replace(/regex here/,“…”)

我想我想找到
字段“
之间的内容。 我还可以通过查找以
开头的字符串“field”:“
并以
结尾,
并使用

str.replace(/regex here/,““field”:“…”,”)

我给正则表达式放什么? 此外,请解释正则表达式背后的含义

谢谢。

使用此模式
(\{“[^”]+”:\s*”[^”]*
并替换为
\1…

(#捕获组(1)
\{        # "{"
"         # """
[^”]#字符不在[“]字符类中
+#(一个或多个)(贪婪)
":        # "":"
\s#
*#(零或更多)(贪婪)
"         # """
)#捕获组结束(1)
[^”]#字符不在[“]字符类中
*#(零或更多)(贪婪)

编辑:如果必须存在“field”,请使用
(\{“field”:\s*”[^“]*

Regex是用于此作业的错误的工具。字符串似乎是JSON,请对其进行解析,修改解析后的数据结构,然后重新编码为JSON

var str='{“x”:{“字段”:“马力”,“类型”:“定量”},“y”:{“字段”:“英里每加仑”,“类型”:“定量”}”;
var data=JSON.parse(str);
data.x.field='…';
data.y.field='…';
str=JSON.stringify(数据);

文件写入(str)
对此不要使用正则表达式。解析JSON,改变结构,然后重新编码为JSON。@meagar这看起来像什么?我更喜欢meagar发布的答案。这是一个计时炸弹。它盲目地替换它找到的第一个值,而不是正确地替换
字段
属性的值。@meagar,它基于在发布的op中,很容易将其限制为“field”
(\{“field”:\s*”[^“]*
(           # Capturing Group (1)
  \{        # "{"
  "         # """
  [^"]      # Character not in ["] Character Class
  +         # (one or more)(greedy)
  ":        # "":"
  \s        # <whitespace character>
  *         # (zero or more)(greedy)
  "         # """
)           # End of Capturing Group (1)
[^"]        # Character not in ["] Character Class
*           # (zero or more)(greedy)