re = /([\d.]+-[\d.]+)\s+sec\s+([\d.]+\s+\w?Bytes)\s+([\d.]+\s+\w?bits\/sec)[\s\w]+receiver/m
str = 'Connecting to host 9.10.21.01, port 5201
[ 4] local 9.17.201.011 port 44466 connected to 9.10.21.01 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-2.00 sec 1.71 GBytes 7.36 Gbits/sec 264 789 KBytes
[ 4] 2.00-4.00 sec 1.63 GBytes 6.99 Gbits/sec 133 865 KBytes
[ 4] 4.00-5.00 sec 732 MBytes 6.14 Gbits/sec 11 826 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-5.00 sec 4.06 GBytes 6.97 Gbits/sec 408 sender
[ 4] 0.00-5.00 sec 4.05 GBytes 6.96 Gbits/sec receiver'
# Print the match result
str.scan(re) do |match|
puts match.to_s
end
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html