Взять все символы после символа разделителя после 5-го знака - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть следующее:

string test = "200| Άρχισε ξανά| Start again| test | test? |201,202,203,204 |list | picture]"

Как бы я получил все символы справа от 5-го "|"итак 201,202,203,204 | список |картинка .Количество символов всегда различно.

Как это можно сделать с помощью c #?

Я пытаюсь использовать

line.Substring(line.LastIndexOf('|') -3)

, но в результате получается "| picture".Я также пытаюсь выравнивать. Split ["|"], но также это не работает, потому что я просто хочу все остальное после 5-го "|".

Ответы [ 2 ]

2 голосов
/ 27 сентября 2019

Вы можете использовать Split, чтобы разделить строку на символе '|', затем метод расширения System.Linq Skip, чтобы пропустить первые 5 результаты, и, наконец, string.Join, чтобы соединить оставшиеся части вместе.снова используя символ '|', чтобы присоединиться к ним:

string result = string.Join("|", test.Split('|').Skip(5));
1 голос
/ 27 сентября 2019

Вы можете использовать это:

string test = "200| Άρχισε ξανά| Start again| test | test? |201,202,203,204 |list | picture]";

int pos = -1;

for ( int i = 1; i <= 5; i++)
{
  pos = test.IndexOf('|', pos + 1);
  if ( pos == -1 )
    break;
}

string result = "";

if ( pos != -1 )
  result = test.Substring(pos + 1).Trim();

Console.WriteLine(result);

Console.ReadKey();

Или использовать версию @RufusL linq.

...