как вы получаете подстроку внутри другого текста? - PullRequest
0 голосов
/ 01 июля 2011

У меня есть этот текстовый формат:

name:
last name:
birthday:
years old:
parent:
school:

И у меня есть следующая информация ..

name:name1
last name:lastname1
birthday:13/03/1991
years old:20
parent:fatherx
school:university x

Как мне получить:

name1
lastname1
13/03/1991
20
fatherx
university x

... для разных переменных?не забывайте пользователя, иногда у него нет информации, например, у него пусто

parent:

Ответы [ 2 ]

2 голосов
/ 01 июля 2011

Split на толстой кишке.Например, если каждая из ваших строк хранится в отдельной строке, вы можете сделать следующее, например,

string s = "name:angel rodrigo";
string name= s.Split(':')[1];  // Get everything after the colon
1 голос
/ 01 июля 2011

Вы можете использовать следующий код для создания словаря пар ключ-значение.

     List<string> fields = new List<string>
     {
        "name:",
        "last name:",
        "birthday:",
        "years old:",
        "parent:",
        "school:",
     };
     string rawData =
        @"name:angel rodrigo
last name:uc ku
birthday:13/03/1991
years old:20
parent:fernando uc puc
school:university x";

     var data = 
        fields.ToDictionary(
           field => field.TrimEnd (':'),
           field => Regex.Match(rawData, "(?<=" + Regex.Escape(field) + ").*"));
     foreach (var kvp in data)
     {
        Console.WriteLine(kvp.Key + "  =>  " + kvp.Value);
     }

Создает этот результат:

name  =>  angel rodrigo
last name  =>  uc ku
birthday  =>  13/03/1991
years old  =>  20
parent  =>  fernando uc puc
school  =>  university x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...