re = /<tr[\s\S]*?class\="left">([^<]*)[\s\S]*?<td>([^<]*)[\s\S]*?viewData\(([^\(]*),/m
str = '<div id="encompass">
<tr class="lineonoff">
<td class="xsmall">27</td>
<td>DATE</td>
<td class="left">TITLE</td>
<td>STATUS</td>
<td><a href="javascript:viewData(ID, \'\')" class="button purple small"><span>A</span></a></td>
</tr>
<tr class="lineonoff">
<td class="xsmall">28</td>
<td>DATE</td>
<td class="left">TITLE</td>
<td>STATUS</td>
<td><a href="javascript:viewData(ID, \'\')" class="button purple small"><span>B</span></a></td>
</tr>
<tr class="lineonoff">
<td class="xsmall">29</td>
<td>DATE</td>
<td class="left">TITLE</td>
<td>STATUS</td>
<td><a href="javascript:viewData(ID, \'\')" class="button purple small"><span>C</span></a></td>
</tr>
</div>'
# 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