我正在使用csharp,并有一个json字符串,我想删除所有不在引号内的空格。我在网上搜索,我已经找到了解决方案,这是这样的:csharp删除空格,除非在引号内,忽略转义引号
aidstring = Regex.Replace(aidstring, "\\s+(?=([^\"]*\"[^\"]*\")*[^\"]*$)", "");
不过,我现在正在处理包含转义引号的字符串:
"boolean": "k near/3 \"funds private\""
与上述正则表达式的解决方案圈它转换成:
"boolean":"k near/3 \"fundsprivate\""
因为转义引号被视为正常引号。 任何人都可以发布一个正则表达式,其中的转义引号会被忽略吗?
非常感谢!
乔瓦尼
我最终的目标是我希望基金和私人这两个词保持两个单独的词,而不是被卡在一起 –
我建议你使用JSON解析器来解析JSON,然后以紧凑的方式重新格式化它。使用正则表达式来处理这类事情最终会变得非常复杂。 –
尝试['aidstring = Regex.Replace(aidstring,@“(”“[^”“\\] *(?:\\。[^”“\\] *)*”“)| \ s +”,“” $ 1" )'](http://regexstorm.net/tester?p=(%22%图5b%5E%22%5C%5C%5D *(%3F%3A%5C%5c所示。%图5b%5E%22 %5C%5C%5D *)*%22)%7C%5CS%2b是I =%22boolean%22%3A +%22K +邻近%2F3 +%5C%22funds +私人%5C%22%22&R =%241)。 –