Regex.Replace(myJSON, "("(?:[^"\]|\.)*")|\s+", "")
应该做。它确保保留包含空格字符的字符串,并丢弃所有其他空格字符。所有的JSON的关键字(
false,
true,
null)必须由逗号或其他标点符号所以只有字符串内需要空格分开予以保留。
第一个选项
("(?:[^"\]|\.)*")匹配双引号字符串。
(...)表示已捕获输出并在替换中可用的平均值。在
[^"\]除双引号或转义字符匹配任何字符。
由于匹配是从左到右进行的,因此第二个选项
s+将不匹配字符串中的空格。
因此,我们匹配整个字符串,并在字符串外部匹配空格。在前一种情况下,
为字符串标记,在后一种情况下为空字符串,因为未使用组1。这按预期工作,因为
- JSON中唯一可以包含空格的标记是双引号字符串。JSON中没有单引号字符串或注释。
- JSON语法要求所有多字符标记之间必须使用单字符标点,因此删除空间不会合并标记。在Javascript中,这可能会引起问题,因为需要空间来破坏令牌。
var x=0
是从不同varx=0
并且x - -(y)
是从不同的x--(y)
。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)