从动态数据c#中获取子字符串
Posted
技术标签:
【中文标题】从动态数据c#中获取子字符串【英文标题】:Get substring from dynamic data c# 【发布时间】:2022-01-08 18:18:20 【问题描述】:我正在使用 DataReceivedEventArgs 事件在控制台上不断更改数据。现在我只需要提取 Total 的 int
值。为此我正在使用字符串函数Substring()
我使用如下:
e.Data.Substring(7, e.Data.IndexOf("f"));
因为总和 fps 在增加时不断变化,所以我开始丢失数字。
请帮助使其动态化,因此无论总和 fps 之间的值是什么,我都想得到它
以下是数据样本
Total= 1082 fps= 21 q=29.0 size= 6144kB time=00:00:36.33
【问题讨论】:
见正则表达式...... dotnetfiddle.net/UB14pC 【参考方案1】:有多种方法可以做到这一点,从简单到更难,最容易使用IndexOf("Total=")
和IndexOf("fps")
,比如
Console.WriteLine(e.Data.Substring(e.Data.IndexOf("Total="), e.Data.IndexOf("fps")));
Demo
但如果Total
、fps
等的顺序发生变化,这将中断,因此您可以使用 RegEx,例如
var input = "Total= 1082 fps= 21 q=29.0 size= 6144kB time=00:00:36.33";
var regexString = @"Total=(\s)*[0-9]+";
var regex = new Regex(regexString);
var match = regex.Match(input);
Console.WriteLine(match);
Demo
您还可以构建一个解析器并将数据解析为一个对象,但这超出了此答案的范围。
PS 如果您可以更改生成此事件和数据的源代码,您可能需要考虑不在应用程序的各个部分之间传递字符串,而是传递对象并格式化这些对象以用于控制台(或任何其他)演示
【讨论】:
它正在工作,但它也添加了total=
我不想得到这个。我只需要数字以上是关于从动态数据c#中获取子字符串的主要内容,如果未能解决你的问题,请参考以下文章
wepy父组件onload中请求数据,更新.sync动态传值绑定的数据,子组件onload中获取不到值。
wepy父组件onload中请求数据,更新.sync动态传值绑定的数据,子组件onload中获取不到值。