-3

please help to extarct regex result of [SUM]

[ 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


help to get [SUM] sender and reciver Gbits/sec

last 2 lines - Gbits/sec

for example to get

first = 4.89

second = 4.88

i tried regex - ([SUM].*GBytes )?(Gbits/sec.*receiver) thanks

Kobi Edri
  • 9
  • 5
  • see https://stackoverflow.com/questions/30658510/getting-line-of-text-after-specific-string-in-c-sharp/30658608#30658608 – rene Aug 10 '21 at 17:46

1 Answers1

-1

You have to escape special chars ([, /) in your regex.

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}");
}

Output

4.89 sender
4.88 receiver
Michael
  • 1,166
  • 5
  • 4
  • many many thanks , but not matches founded – Kobi Edri Aug 10 '21 at 19:14
  • How do you read the output of iperf? Process class and ReadToEnd() (https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.process.standardoutput?view=net-5.0#examples)? – Michael Aug 10 '21 at 20:00