c# - 如何使用 IndexOf 获取字符串中的两个单独部分
问题描述
我有一些代码在其中接收结果(启动时间)并希望将这些结果与 txt 文件一起粘贴。
我曾尝试使用下面的代码,但目前只获取启动时间的索引和行的其余部分,但我似乎也无法获得日期。
using (var process = Process.Start(psi))
{
results = process.StandardOutput.ReadToEnd();
}
解决方案
您可以简单地使用正则表达式:
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);
推荐阅读
- laravel - Laravel 视图不显示数据
- c++ - 在 cmake 构建中使用 https://github.com/eclipse/paho.mqtt.cpp
- awk - 使用 awk 打印带有条件的字符串
- python - 使用 Panda3D 的简单平面相交
- reactjs - 如何在反应componentDidMount中从孩子调用父方法
- sql - 具有分组依据的 PIVOT SQL
- vue.js - 如何在 ...mapState (Vuex) 之间设置一个值
- git - 如何强制 git 从非废弃分支重新使用现有提交 sha1?
- android - LibSNDfile / Obeo 音频录制 Android 未正确写入标头
- javascript - 如何在 Sequelize 中按多对多关系排序?