re = /(?:[^[:alpha:]-]|^)
(
[[:alpha:]]{2,}(?:-[[:alpha:]]{2,})?|
-[[:alpha:]]{2,}|
[[:alpha:]]{2,}-
)
[^[:alpha:]-]
(?:(?:.*?[^[:alpha:]-])?\1(?:[^[:alpha:]-]|$)){2}/xim
str = '-bad girls, -bad boys,-bad phone. phone phone mam: phone phone?
wup, wup, BORAK OBAMA OBAMA MAMA; it is OBAMA .
hustone, we have a problem, big problem. Very big, big, big
high cost - high perfomance, high
full-hd,tv-full,full-hd:full-hd
1 Fooo fooo fooo , fooo-- fooo--
2 fooo feee faaa , fooo-fooo, fooo-fooo.'
# 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