re = /^(((\+|00)32\s?|0)4(60|[789]\d)\/?(((\s|\.)?\d{2}){3}|((\s|\.)?\d{3}){2})$)|(^((\+|00)32\s?|0)(\d(\s|\.|\/)?\d{3}|\d{2}(\s|\.)?\d{2})((\s|\.)?\d{2}){2}$)/m
str = '+32497239319
0032497239319
0032/497/13/93/19
0032/497.13.93.19
0032/497/13/93/19
0032497/13.93.19
+32497/139319
0497/13.93.19
+32497.13.93.19
0497139319
0497 13 93 19
0497 139 319
jakkamakka
+32497139319 OF +32497149419
++32497139318
0123456789
0032123456789
036852931
003236852931
+3236852931
03/685.29.31
00323/685.29.31
+323/685.29.31
03.685.29.31
00323.685.29.31
+323.685.29.31
03/685/29/31
0032/3/685/29/31
+32/3/685/29.31
03/68.529.31
'
# 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