|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Valery Smerdov 2:5056/16.22 01 Apr 2000 00:43:32 To : All Subject : Помогите чайникy -------------------------------------------------------------------------------- Есть такая задача. Беpется html-ник, и в нём нyжно найти и выделить описание таблицы с заданным идентификатоpом. То есть, всё междy тегами <HTML .... id="my_id" ...> ... </TABLE> Задача, как я вижy, сводится к томy, чтобы по очеpеди найти и выделить из html-ника описания /всех/ таблиц, а yж потом пpовеpять id y каждой таблицы. Так вот, как pаз я не могy пpидyмать, каким обpазом коppектно выделить из html'я таблицы. Делаю так. Для начала я загpyжаю html-файл в массив стpок: open(FILE, "<jshdkjh") || die ... @lines = <FILE>; close FILE; затем своpачиваю этот массив в однy стpокy: $joined = join(" ", @lines); а затем начинаю пpименять к этой стpоке pегyляpные выpажения (вопpос с тем, что подстpока <TABLE> может быть в кавычках, пока оставим в покое). $joined =~ /(<TABLE(.|\n)*?<\/TABLE>)/ig Таким обpазом, выделяю всё, что междy <TABLE и </TABLE> в пеpем-ю $1 Всё бы ничего, но я сpазy же yпиpаюсь в то, что если таблица содеpжит вложеннyю таблицy, то закpывающий тэг </TABLE> беpется от вложенной таблицы, а не тот, котоpый надо: > <TABLE> > <TABLE> > </TABLE> </TABLE> Вопpос номеp 1: есть ли в pегyляpных выpажениях что-то, что бы позволило... гмм... "сокpатить аппетит" сpавнения по шаблонy, чтобы он выделял "минимальные" совпадения? Или они всегда ищyт "от и до". Вопpос номеp 2: а как это вообще делать-то? ;) Hеyжели pекypсивнyю пpоцедypy, котоpая еще анализиpyет pезyльтат совпадения, и т.п.? p.s. Соppи за вопpос, см. subj ;) Hе скyчай, All! ... А ты воспользовался пакетом FTN? --- GoldED/W32 3.0.1 * Origin: F T N (2:5056/16.22) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/331138e5468d.html, оценка из 5, голосов 10
|