re = /^\QJob started\E
(?:(?!\QJob ended\E).)+?
^\QJob executed successfully\E/mx
str = 'Job started at \'0902 23:56:00:367\' orderno - \'0tzh0\' runno - \'00064\' Number of transfers - 1
Host1 \'Local\'[Windows-LOCAL] username \'xxx\\xxx\' - Host2 \'xxx.xxx.xx\'[Unix-SFTP] username \'xxx\'
Local host is: xxx - Windows 200x [601] Service Pack 1 build 7601 - Intel64 Family 6 Model 37 Stepping 1, GenuineIntel
********** Starting transfer #1 out of 1 *************** Transfer #1 completed successfully
Job executed successfully. exiting.
Job ended at \'0902 23:56:07:138\' Elapsed time [7sec] CPU usage [0.15sec]
Job started at \'0831 15:26:00:365\' orderno - \'0tuq5\' runno - \'00030\' Number of transfers - 4
Host1 \'Local\'[Windows-LOCAL] username \'xxx\\xxx\' - Host2 \'xxx.xxx.xx\'[Unix-SFTP] username \'xxx\'
Local host is: xxx - Windows 200x [601] Service Pack 1 build 7601 - Intel64 Family 6 Model 37 Stepping 1, GenuineIntel
********** Starting transfer #1 out of 4 *************** Unable to connect to SSH server on \'xxx.xxx.xx\': SFTP_Connect : psftp_connect failed : ssh_init: Network error: Connection timed out .
Connection to host sftp.onenet.be could not be established
Job ended at \'0831 15:26:21:426\'
Elapsed time [21sec] CPU usage [0.0sec]
'
# 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