Forum Webscript.Ru

Программирование => Perl => Тема начата: Alex V. White от 05 Июня 2003, 17:53:36

Название: Регулярные выражения
Отправлено: Alex V. White от 05 Июня 2003, 17:53:36
Вытягиваю таблицу фьючерсов с сайта при помощи модуля LWP::Simple. Страницу целиком тяну нормально, а вот потом мне надо вытянуть из нее одну таблицу (там их много). Помогите составить выражение для этого.
Страница которую я вытягиваю имеет вид:
Otto Stadtlander GmbH
потом всякая пурга
ЭТУ ТАБЛИЦУ НАДО ВЫТЯНУТЬ
















и так далее
в конце таблицы
NEW YORK FUTURES
04.06.03

 
HIGH LOW LAST CHANGE
2003 July 50,05 48,15 49,64 + 101


Подскажите плз! как эту таблицу полностью смыкануть.
Название: Регулярные выражения
Отправлено: mike от 05 Июня 2003, 19:33:41
Если исходник в $_:


($tbl) = /().)*\\bNEW\\sYORK\\sFUTURES\\b.*?<\\/table>)/is;


PS. Смайлики в регэкспе - это супер :D
:( - это двоеточие и скобка.
Название: Регулярные выражения
Отправлено: Alex V. White от 06 Июня 2003, 15:39:03
Что то не то делаю, не выходит.
Первая строка таблицы:

без перевода строки - одна строка.
последняя:

 

 

 
это срока целиком.
Исходник находится в $doc

Название: Регулярные выражения
Отправлено: Alex V. White от 06 Июня 2003, 15:42:53
В последней строке между

стоят   - символя пробелов.
Мне бы отловить то что между и , далее я ее чуток переформатирую и напечатаю print "$doc

Название: Регулярные выражения
Отправлено: mike от 06 Июня 2003, 18:19:03
После закрывающего тега почему-то вставился пробел. Думаю, стоит убрать. :)

Если исходник в $doc, то
($tbl) = $doc =~ /]*>((?:(?!<\\/table>).)*\\bNEW\\s+YORK\\s+FUTURES\\b.*?)<\\/table>/is;
Название: Регулярные выражения
Отправлено: Alex V. White от 06 Июня 2003, 18:31:21
Спасибо БОЛЬШОЕ!
Уже вышло.
Буду форматировать.