Разделение строки, начало и конец символа - PullRequest
0 голосов
/ 04 июня 2018

Например, у меня есть эта строка:

string myString="abc {string 1} def {string 2}{string 3}";

Мне нужно получить массив строк с:

string 1
string 2
string 3

или

{string 1}
{string 2}
{string 3}

IsЕсть ли простой способ сделать это?

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Вот решение LINQ:

string myString="abc {string 1} def {string 2}{string 3}";

string[] result = myString.Split('{')
                          .Where(x => x.Contains("}"))
                          .Select(x => new string(x.TakeWhile(c => c != '}').ToArray()))
                          .ToArray();

результат:

result[0]="string 1"

result[1]="string 2"

result[2]="string 3"

ДЕМО ЗДЕСЬ

0 голосов
/ 04 июня 2018

Используйте регулярное выражение.Это поиск, который вы хотели бы выполнить:

{.+?}

Например:

    string input = "abc {string 1} def {string 2}{string 3}";
    string pattern = "{.+?}";
    Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);

    MatchCollection matches = rgx.Matches(input);
    if (matches.Count > 0)
    {
        Console.WriteLine("{0} ({1} matches):", input, matches.Count);
        foreach (Match match in matches)
            Console.WriteLine("   " + match.Value);
    }

доходность

abc {string 1} def {string 2}{string 3} (3 matches):
   {string 1}
   {string 2}
   {string 3}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...