第二个空格后得到字符串

时间:2016-12-21 03:10:12

标签: c# string substring

如果我有这样的字符串

@"400 ERROR The second argument must be larger than the first."

如何提取标有"The second argument must be larger than the first."的部分?

3 个答案:

答案 0 :(得分:3)

string error = @"400 ERROR The second argument must be larger than the first.";
var ind1 = error.IndexOf(' ');
var ind2 = error.IndexOf(' ', ind1 + 1);
var substring = error.Substring(ind2);

在各种情况下,这可能会失败。例如,彼此后面有多个空格。使用这种方法可能容易出错。

正则表达式是更好的选择。

string error = @"400 ERROR The second argument must be larger than the first.";
Regex regex = new Regex("^\\d+ *(ERROR|WARNING) *(?<Message>.*)$", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
var message = regex.Match(error).Groups["Message"].ToString();

您可以在首次捕获时添加所需的模式。例如(ERROR|WARNING|HINT|etc)

答案 1 :(得分:1)

试试这个:

var source = @"400 ERROR The second argument must be larger than the first.";
var result = String.Join(" ", source.Split(' ').Skip(2));

这给了我你正在寻找的结果。

答案 2 :(得分:1)

var result = String.Join(" ",error.split(' ').Skip(2))

或者这个

var output = Regex.Replace(ErrorText,@"\d+?\s\w+","");