【问题标题】:Remove dynamic substring from string c#从字符串 c# 中删除动态子字符串
【发布时间】:2015-12-06 09:43:58
【问题描述】:

我目前正在实施一个系统,遇到了以下问题。

我们正在调用提供非 JSON 格式的内容字符串的第 3 方供应商,因此我们正在尝试从字符串中删除内容,以便构建 JSON 字符串并将其序列化为我们自己的对象。

我们正在尝试将部分从{"imgCount 删除到]",(就在“图像”之前:

字符串示例如下:

img_CB("imgCount":31,"imgHash":"[6ede94341e1ba423ccc2d4cfd27b9760]","images":{...});

问题是,imgCount 和 imgHash 可能不是这个顺序。它可能类似于以下内容:

img_CB("images":{....}, "imgHash":"[6ede94341e1ba423ccc2d4cfd27b9760]", "imgCount":31);

因此,这使得确定从哪里开始“替换”变得非常动态和困难。

请问有人可以帮助构建一个正则表达式来替换/删除 imgHash 和 imgCount 标签的值吗?

谢谢

【问题讨论】:

    标签: c# json regex string replace


    【解决方案1】:

    看起来您收到了 jsonp 响应。看看这个关于如何在剥离 jsonp 内容后解析你的 json 的答案:

    How to parse JSONP using JSON.NET?

    例子:

    string supposedToBeJson = "img_CB(\"imgCount\":31,\"imgHash\":\"[6ede94341e1ba423ccc2d4cfd27b9760]\",\"images\":{});";
    
    var jobject = JObject.Parse(supposedToBeJson.Replace("img_CB(", "{").Replace(");", "}"));
    
    var images = jobject.SelectToken("images");
    

    【讨论】:

      【解决方案2】:

      试试这个:

      str = Regex.Replace(str, "\"imgCount*,","");
      str = Regex.Replace(str, "\"imgHash*,","");
      str = Regex.Replace(str, ",*\"imgCount*)",")");
      str = Regex.Replace(str, ",*\"imgHash*)",")");
      

      【讨论】:

        猜你喜欢
        • 2021-05-30
        • 1970-01-01
        • 2019-10-15
        • 1970-01-01
        • 1970-01-01
        • 2011-10-15
        • 2020-10-28
        • 2019-09-08
        相关资源
        最近更新 更多