【问题标题】:parsing iperf result解析iperf结果
【发布时间】:2021-10-14 06:47:18
【问题描述】:

请帮助提取 [SUM] 的正则表达式结果

[4] 0.00-10.01 sec 1.32 GBytes 1.13 Gbits/sec 发送方

[4] 0.00-10.01 sec 1.32 GBytes 1.13 Gbits/sec 接收器

[6] 0.00-10.01 sec 1.56 GBytes 1.34 Gbits/sec 发送方

[6] 0.00-10.01 sec 1.56 GBytes 1.34 Gbits/sec 接收器

[8] 0.00-10.01 sec 1.52 GBytes 1.31 Gbits/sec 发送方

[8] 0.00-10.01 sec 1.52 GBytes 1.31 Gbits/sec 接收器

[10] 0.00-10.01 秒 1.29 GBytes 1.11 Gbits/sec 发送方

[10] 0.00-10.01 sec 1.29 GBytes 1.11 Gbits/sec 接收器

[SUM] 0.00-10.01 秒 5.70 GBytes 4.89 Gbits/sec 发送方

[SUM] 0.00-10.01 sec 5.69 GBytes 4.88 Gbits/sec 接收器


帮助获取 [SUM] 发送方和接收方 Gbits/sec

最后 2 行 - Gbits/sec

例如获取

第一个 = 4.89

秒 = 4.88

我尝试了正则表达式 - ([SUM].*GBytes )?(Gbits/sec.*receiver) 谢谢

【问题讨论】:

标签: c# regex parsing extract iperf


【解决方案1】:

您必须在正则表达式中转义特殊字符([、/)。

string data = @"
[ 4] 0.00-10.01 sec 1.32 GBytes 1.13 Gbits/sec sender
[ 4] 0.00-10.01 sec 1.32 GBytes 1.13 Gbits/sec receiver
[ 6] 0.00-10.01 sec 1.56 GBytes 1.34 Gbits/sec sender
[ 6] 0.00-10.01 sec 1.56 GBytes 1.34 Gbits/sec receiver
[ 8] 0.00-10.01 sec 1.52 GBytes 1.31 Gbits/sec sender
[ 8] 0.00-10.01 sec 1.52 GBytes 1.31 Gbits/sec receiver
[ 10] 0.00-10.01 sec 1.29 GBytes 1.11 Gbits/sec sender
[ 10] 0.00-10.01 sec 1.29 GBytes 1.11 Gbits/sec receiver
[SUM] 0.00-10.01 sec 5.70 GBytes 4.89 Gbits/sec sender
[SUM] 0.00-10.01 sec 5.69 GBytes 4.88 Gbits/sec receiver";

var matches = System.Text.RegularExpressions.Regex.Matches(data, @"\[SUM\].*\s(?<rate>[0-9.]+) Gbits\/sec (?<type>sender|receiver)");
foreach (System.Text.RegularExpressions.Match m in matches)
{
    Console.WriteLine($"{m.Groups["rate"].Value} {m.Groups["type"].Value}");
}

输出

4.89 sender
4.88 receiver

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-15
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 2012-08-01
  • 1970-01-01
相关资源
最近更新 更多