re = /(<tr(?:(?!<li)[\s\S])*?(ContactUs)[\s\S]*?<\/tr>)/
str = ' <li class="menuItem">
<a class="menuItem" href="/site/News.aspx?section=316&ViewType=Actual&IdType=316">
<span class="posNR">2.
</span>News<span class="shortDesc"></span><span class="line"></span></a>
asdsdasda </li>
<tr class="menuItem">
<a class="menuItem" href="/site/ContactUs.aspx?section=510">
<span class="posNR">3.
</span>Contact Us<span class="shortDesc"></span><span class="line"></span></a>
</tr>
<tr class="menuItem">
<a class="menuItem" href="/site/ContactUs.aspx?section=510">
<span class="posNR">3.
</span>Contact Us<span class="shortDesc"></span><span class="line"></span></a>
</tr>
<tr class="menuItem">
<a class="menuItem" href="/site/ContactUs.aspx?section=510">
<span class="posNR">3.
</span>Contact Us<span class="shortDesc"></span><span class="line"></span></a>
</tr>
</ul>'
# 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