Как разбить строку на подстроки используя Regex - C#
Формулировка задачи:
При работе над одним модулем, возникла проблема такого рода:
получаю Json строку такого вида { ts: 196851352, updates: [ [ 9, -835293, 1 ], [ 9, -23498, 1 ] ] }
Мне необходимо из секции updates получить секции , вернее контент содержащийся в них, то есть
занчения: 9, -835293, 1 ; 9, -23498, 1
Может кто кинет снипет который делает это на Regex-e. Можете рассматривать строку как
[ [ 9, -835293, 1 ], [ 9, -23498, 1 ] ].
пытался таким образом , но не вышло))
Regex oRegex = new Regex(@"(?<data>[\w*|\d+])"); MatchCollection oMatchCollection = oRegex.Matches(upd); List<string> list = new List<string>(); foreach (Match oMatch in oMatchCollection) { list.Add(oMatch.Groups["data"].Value); }
Решение задачи: «Как разбить строку на подстроки используя Regex»
textual
Листинг программы
using System; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; using System.Text; namespace ConsoleApplicationTest { public static class Program { private static void Main() { // Исходные данные string data = @"{ ts: 196851352, updates: [ [ 9, -835293, 1 ], [ 9, -23498, 1 ] ] }"; // Добавляем кавычки, ибо исходные данные не корректны data = data.Replace( "updates", @"""updates""" ).Replace( "ts", @"""ts""" ); // Сериализатор Json DataContractJsonSerializer serializer = new DataContractJsonSerializer( typeof ( MyClass ) ); // Десериализуем данные MyClass results; var byteArray = Encoding.ASCII.GetBytes( data ); using ( MemoryStream memoryStream = new MemoryStream( byteArray ) ) { results = serializer.ReadObject( memoryStream ) as MyClass; } // Ввыводим результат Console.WriteLine( results.Ts ); Console.WriteLine( string.Join( "; ", results.Updates[ 0 ] ) ); Console.WriteLine( string.Join( "; ", results.Updates[ 1 ] ) ); Console.ReadKey(); } } [DataContract] class MyClass { [DataMember( Name = "ts" )] public int Ts; [DataMember( Name = "updates" )] public int[][] Updates; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д