首页 > 解决方案 > 如何使用 IndexOf 获取字符串中的两个单独部分

问题描述

我有一些代码在其中接收结果(启动时间)并希望将这些结果与 txt 文件一起粘贴。

我曾尝试使用下面的代码,但目前只获取启动时间的索引和行的其余部分,但我似乎也无法获得日期。

using (var process = Process.Start(psi))
{
    results = process.StandardOutput.ReadToEnd();
}

标签: c#indexing

解决方案


您可以简单地使用正则表达式:

string date = null, startup_time = null;
var match = Regex.Match(results, @"(\d{2}-\d{2}-\d{2} \d{2}:\d{2})");
if(match.Success)
{
     date = match.Groups[1].Value;
}
match = Regex.Match(results, @"(scene startup time:\s*(\d+ms)");
if(match.Success)
{
     startup_time = match.Groups[1].Value;
}

如果你想这样做IndexOf()

    string search = "Total scene startup time:";
    int start = results.IndexOf(search) + search.Length;
    string startup = results.Substring(start, results.IndexOf("ms", start + 1) + 2 - start).Trim();
    Console.WriteLine(startup);

演示


推荐阅读