我有很多这样的字符串:
29/10/2018 14:50:09402325 671
我想分割这些字符串,使它们像这样:
29/10/2018 14:50
09402325 671
然后将它们添加到数据集中并在以后进行分析。
我遇到的问题是,如果我使用以下代码:
string[] words = emaildata.Split(':');
将它们拆分两次;我只想在第二次出现时将它拆分一次。
我该怎么做?
答案 0 :(得分:2)
您可以使用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);
提琴here
但是,另一个要问自己的问题是,您是否甚至需要使其变得比所需的更为复杂。看起来该数据将始终具有与第二个:
实例相同的长度直到,对吗?为什么不只拆分一个已知的索引(即不首先找到:
)?
string firstPart = input.Substring(0, 16);
string secondPart = input.Substring(17);
答案 1 :(得分:0)
您可以反转字符串,然后调用常规split方法询问单个结果,然后反转两个结果
答案 2 :(得分:0)
并带有正则表达式: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]);
}
}
}