re = /Server: ([^\n]*)(?:[^{]*)\{(.*)\}/
str = 'Server: Omega-X
celery.queue_length: {\'transfer_data\': \'0\', \'factor_a\': \'0\', \'slow\': \'0\', \'factor_b\': \'0\', \'score_retry\': \'0\', \'damage_factor_c\': \'0\', \'voice_ud\': \'0\', \'alarm_factors_bl\': \'0\', \'telemetry_x\': \'0\', \'endstream\': \'0\', \'celery\': \'0\', \'awl\': \'0\', \'prs\': \'0\', \'score\': \'0\', \'feature_factors_xf\': \'0\', \'feature_factors_dc\': \'0\'}
Server: Alfa-X
celery.queue_length: {\'transfer_data\': \'0\', \'factor_a\': \'0\', \'slow\': \'0\', \'factor_b\': \'0\', \'score_retry\': \'0\', \'damage_factor_c\': \'0\', \'voice_ud\': \'0\', \'alarm_factors_bl\': \'0\', \'telemetry_x\': \'0\', \'endstream\': \'0\', \'celery\': \'0\', \'awl\': \'0\', \'prs\': \'0\', \'score\': \'0\', \'feature_factors_xf\': \'0\', \'feature_factors_dc\': \'0\'}'
# 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