re = /^\(?([2-9])\)?([0-9]{2})?[-.*]?([2-9])\)?((?!11)[0-9]{2})?[-.*]?([0-9]{4})$/m
str = '(2)33-233-2222
4805123848
4805218482
(2)33-212-2222
(2)33-221-2222
4809128327
4809418482
(2)33-211-2222
4807119320
4805119439
4809114739'
# 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