2017-07-26 1 views
0

Im unteren Ausdruck muss ich einfach "pmcKey" Feldwert durch eine andere Zeichenfolge ersetzen. "pmcKey": "value .... long", muss "value .... long" durch andere Zeichenfolge ersetzen. Wie dies zu tun ist, durch string.replace geht sehr weit weg.So ersetzen Sie eine bestimmte Zeichenfolge im langen Zeichenfolgetext

{"rd":"1404900091","d":"25994","dddd":99,"pmcKey":"95abcdefgiJBMjU2R0NNS1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwiaXYiOiJBQVNNa0lsQ3l6blRsWktiIiwidGFnIjoiUlFuNUhVSWVHMVN0TmxJdXB5SGZNZyIsInppcCI6IkRFRiJ9.6zef568_zt8uZGlOdZZZga0FJV1CJcf-RdEIUk88ZtNyEmVX7eLnuce1nhkROgA03444LRiOxkFLFJ_eW5Um8w.k72DtsRbZzuTqWqOFlacVw.D3Sn9jiKRosZboqE0v999htZuyHu4Eukcq64Df5ga6XEOIOj6vDwR-2_NxzYs58kWpvP999SsXdYfqn1m9--h3lgcJEqOb2z4u_yXzxRWsGQe8kNwdWndFJox699999lQI0djiYAQtkhgqI6hgBS_muWiYar9WpP6K3fxPn99999cXlN6L0RdqWIl_U-wV5mlpMivxfyk0fMVcD1T9GTk99999aHpPPAYJ0pHIOYJjak2tj7J_nK4jPxrw7pNbQ3h2TB71JE5UTs4P9NgsL299999eb2wdJuOgJR9md-8PiGAJvWpgQSQu9HNvGowaTq.9999999991gjk0SQEXxfFBUTJKDANTdVBN52FURbIXQ","id":null,"req":null,"page":1,"CDate":null} 
+6

Da dies JSON ist, würde ich es als JSON (z. Verwenden Sie 'JObject.Parse'), ändern Sie es als JSON und konvertieren Sie es dann wieder in eine Zeichenfolge. Im Allgemeinen ist es am besten, so früh wie möglich in den natürlichen Bereich der Daten zu konvertieren. –

Antwort

2

Angenommen, Ihre Eingabe ist gültig Json können Sie diesen Code versuchen:

var input = "{\"rd\":\"1404900091\",\"d\":\"25994\",\"dddd\":99,\"pmcKey\":\"95abcdefgiJBMjU2R0NNS1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwiaXYiOiJBQVNNa0lsQ3l6blRsWktiIiwidGFnIjoiUlFuNUhVSWVHMVN0TmxJdXB5SGZNZyIsInppcCI6IkRFRiJ9.6zef568_zt8uZGlOdZZZga0FJV1CJcf-RdEIUk88ZtNyEmVX7eLnuce1nhkROgA03444LRiOxkFLFJ_eW5Um8w.k72DtsRbZzuTqWqOFlacVw.D3Sn9jiKRosZboqE0v999htZuyHu4Eukcq64Df5ga6XEOIOj6vDwR-2_NxzYs58kWpvP999SsXdYfqn1m9--h3lgcJEqOb2z4u_yXzxRWsGQe8kNwdWndFJox699999lQI0djiYAQtkhgqI6hgBS_muWiYar9WpP6K3fxPn99999cXlN6L0RdqWIl_U-wV5mlpMivxfyk0fMVcD1T9GTk99999aHpPPAYJ0pHIOYJjak2tj7J_nK4jPxrw7pNbQ3h2TB71JE5UTs4P9NgsL299999eb2wdJuOgJR9md-8PiGAJvWpgQSQu9HNvGowaTq.9999999991gjk0SQEXxfFBUTJKDANTdVBN52FURbIXQ\",\"id\":null,\"req\":null,\"page\":1,\"CDate\":null}"; 
var json = JObject.Parse(input); 
json["pmcKey"] = "other string"; 
var result = json.ToString(); 


EDIT Wenn meine Annahme falsch ist, dass Sie reguläre Ausdrücke wie diese verwenden:

var regex = new Regex("\"pmcKey\":\"(?<oldValue>[^\"]+)\""); 
var oldValue = regex.Match(input).Groups["oldValue"]; 
var newValue = "otherValue"; 
var result = $"{input.Substring(0, oldValue.Index)}{newValue}{input.Substring(oldValue.Index + oldValue.Length)}"; 
+0

Danke. JObject funktioniert. eigentlich funktioniert regex nicht, 'oldvalue' kann alles sein. – user3711357

0

Versuchen Regex:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Text.RegularExpressions; 


namespace ConsoleApplication68 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string input = "{\"rd\":\"1404900091\",\"d\":\"25994\",\"dddd\":99,\"pmcKey\":\"95abcdefgiJBMjU2R0NNS1ciLCJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwiaXYiOiJBQVNNa0lsQ3l6blRsWktiIiwidGFnIjoiUlFuNUhVSWVHMVN0TmxJdXB5SGZNZyIsInppcCI6IkRFRiJ9.6zef568_zt8uZGlOdZZZga0FJV1CJcf-RdEIUk88ZtNyEmVX7eLnuce1nhkROgA03444LRiOxkFLFJ_eW5Um8w.k72DtsRbZzuTqWqOFlacVw.D3Sn9jiKRosZboqE0v999htZuyHu4Eukcq64Df5ga6XEOIOj6vDwR-2_NxzYs58kWpvP999SsXdYfqn1m9--h3lgcJEqOb2z4u_yXzxRWsGQe8kNwdWndFJox699999lQI0djiYAQtkhgqI6hgBS_muWiYar9WpP6K3fxPn99999cXlN6L0RdqWIl_U-wV5mlpMivxfyk0fMVcD1T9GTk99999aHpPPAYJ0pHIOYJjak2tj7J_nK4jPxrw7pNbQ3h2TB71JE5UTs4P9NgsL299999eb2wdJuOgJR9md-8PiGAJvWpgQSQu9HNvGowaTq.9999999991gjk0SQEXxfFBUTJKDANTdVBN52FURbIXQ\",\"id\":null,\"req\":null,\"page\":1,\"CDate\":null}"; 
      string pattern = "\"pmcKey\":\"[^\"]+\""; 

      string output = Regex.Replace(input, pattern, "pmc\":\"abc\""); 

     } 
    } 

} 
Verwandte Themen