re = /^(((\+?[0-9]{2})?\(?[0-9]{2}\)?)?([0-9]?[0-9]{4}\-?[0-9]{4}))$/m
str = '+55(91)3348-0276
559133480276
(91)3348-0276
9133480276
3348-0276
33480276
+55(91)98444-6776
5591984446776
(91)98444-6776
91984446776
98444-6776
984446776'
# 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