有没有办法可以操作包含以下内容的字符串:
{"Correct":true,"Explanation":{"TextWithHtml":null},"ImageFile":null,"Response":false,"Text":{"TextWithHtml":"1 -1 4 -16"}},{"Correct":true,"Explanation":{"TextWithHtml":null},"ImageFile":null,"Response":false,"Text":{"TextWithHtml":"1 -1 4 2147483644"}}]
并删除{"TextWithHtml":
和}
,但保留内容?
答案 0 :(得分:2)
恕我直言,你应该创建一个类
public class YourClassName
{
public string TextWithHtml{ get; set; }
}
修改答案课
public class Answer : AuditableTable
{
public bool Correct { get; set; }
public bool Response { get; set; }
public YourClassName Text { get; set; }
public string ImageFile { get; set; }
public YourClassName Explanation { get; set; }
}
答案 1 :(得分:0)
试试这个:
string sSource = @"{"Correct":true,"Explanation":{"TextWithHtml":null},"ImageFile":null,"Response":false,"Text":{"TextWithHtml":"1
-1 4 -16"}},{"Correct":true,"Explanation":{"TextWithHtml":null},"ImageFile":null,"Response":false,"Text":{"TextWithHtml":"1
-1 4 2147483644"}}]";
string pattern = @"({"TextWithHtml":)|(?(?<=({"TextWithHtml":)[^}]*)})";
string sResult= Regex.Replace(@sSource, @pattern, "");
一些解释:
删除
{"TextWithHtml":
或删除
}
如果之前是:
{“TextWithHtml”:加上一些不是'{'
的字符编辑:
表示TextWithHtml字符串中的{}括号:
({ “TextWithHtml” :) |((小于=(({ “TextWithHtml”:?)(( “[^”] *“)|空)))})
但是转义引号字符(\“)仍然存在问题。
答案 2 :(得分:0)
要匹配您想要的所有数据,请使用以下正则表达式:
{"TextWithHtml":.*?}
使用Regex.Replace(...)将匹配项替换为子字符串。
string data = match.Value.Substring(16, match.Value.Length-16-1);
接下来,如果数据包含“marks:
,则修剪数据data.Trim('"');