如果我有这样的字符串
@"400 ERROR The second argument must be larger than the first."
如何提取标有"The second argument must be larger than the first."
的部分?
答案 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+","");