re = /[A-Z]+(?:[[:punct:]][A-Z]+)*(?=\s+application)/
str = 'Conversion routine for the NYC.GENX application. - should show \'NYC.GENX\'
Conversion routine for the CAP-GENY application. - should show \'CAP-GENY\'
Conversion routine for the NNUAT_CHECK application. - should show \'NNUAT_CHECK\'
Created on 1/1/14 11:40 AM for RUN_SCRIPT application. - should show \'NNUAT_CHECK\'
Event created on 2/2/14 12:29 PM for the STOP_SERVER application. - should show \'STOP_SERVER\''
# 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