re = /<a\s+(?![^>]*rel\s*=\s*(['"])\s*nofollow\s*\1)[^>]*href\s*=\s*(["'])http:\/\/www.mysite.com[][\w-.~:\/?#@!%$&'()*+,;=]*\2[^>]*>/
str = '<a ... href="http://www.mysite.com/xyz...." ... >
<a ... href="http://www.mysite.com/xyz...." rel=\'nofollow\' ... >
<a ... href="http://www.NOTmysite.com" ... >
<a ... href="http://www.mysite.com" rel=\'foobar\'... >
<a class="use_same_protocol" href="//www.mysite.com" >
<!-- This used to great <a ... href="http://www.mysite.com/xyz...." ... > -->'
# 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