Разделить строку на N-е вхождение char - PullRequest
0 голосов
/ 29 октября 2018

У меня много таких строк:

29/10/2018 14:50:09402325 671

Я хочу разбить эти строки, чтобы они выглядели так:

29/10/2018 14:50

09402325 671

Затем они будут добавлены в набор данных и проанализированы позже.

У меня возникает проблема, если я использую этот код:

 string[] words = emaildata.Split(':');

это разделяет их дважды; Я хочу разделить его только один раз при втором появлении:.

Как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 29 октября 2018

Вы можете использовать LastIndexOf() и некоторые последующие Substring() звонки:

string input = "29/10/2018 14:50:09402325 671";

int index = input.LastIndexOf(':');

string firstPart = input.Substring(0, index);
string secondPart = input.Substring(index + 1);

Скрипка здесь

Однако, еще один вопрос, который нужно задать себе, это то, что вам нужно сделать все более сложным, чем нужно. Похоже, что эти данные всегда будут иметь одинаковую длину до этого второго : экземпляра, верно? Почему бы просто не разделить по известному индексу (т.е. сначала не найти :):

string firstPart = input.Substring(0, 16);
string secondPart = input.Substring(17);
0 голосов
/ 29 октября 2018

и с регулярным выражением: https://dotnetfiddle.net/Nfiwmv

using System;
using System.Text.RegularExpressions;

public class Program  {
    public static void Main() {
        string input = "29/10/2018 14:50:09402325 671";
        Regex rx = new Regex(@"(.*):([^:]+)",
            RegexOptions.Compiled | RegexOptions.IgnoreCase);

        MatchCollection matches = rx.Matches(input);
        if ( matches.Count >= 1 ) {
            var m = matches[0].Groups;
            Console.WriteLine(m[1]);
            Console.WriteLine(m[2]);        
        }
    }
}
0 голосов
/ 29 октября 2018

вы можете перевернуть строку, затем вызвать обычный метод разбиения, запрашивая один результат, а затем сторнировать оба результата обратно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...