Обычно синтаксический анализ (X) HTML с использованием регулярных выражений является плохой практикой. В Ruby есть фантастическая Nokogiri библиотека, которая использует libxml2 для эффективного анализа XHTML.
Как говорится, ваш .
не соответствует переводу строки. Используйте модификатор m
для вашего регулярного выражения, который сообщает .
, что нужно сопоставлять новые строки. Или константа Regexp :: MULTILINE. Документировано здесь
Ваше регулярное выражение также захватывает HTML перед требуемым текстом.
Использование nokogiri и XPath означало бы, что вы можете получить содержимое этой ячейки таблицы, ссылаясь на ее класс CSS. Как это:
#!/usr/bin/env ruby
require 'nokogiri'
doc = Nokogiri::HTML DATA.read
p doc.at("td[@class='generalinfo_right']").text
__END__
<td class="generalinfo_left" align="right">Name:</td>
<td class="generalinfo_right">Burkhart, Peterson & Company</td>
Который вернется "Burkhart, Peterson & Company"