|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Ivan Frolcov 2:5020/175.2 16 Feb 2001 12:28:00 To : Alexander Babanov Subject : Re: Хитрая замена подстроки регекспом. -------------------------------------------------------------------------------- AB>>> Выкуси текст между <body></body> и разбирай себе. Можно с рекурсиями. AB>>> Или тебе обязательно одним регекспом? IF>> Да. Если несколькими - то тогда все можно. AB> Можно и одним. Хитрым :) AB> sub parse { AB> $_ = shift; AB> s{<(\w+)>(.*?)</\1>}{parse($2); " "}sie; AB> print; AB> } AB> parse("<body><i><b>Jessie</b>the</i>Body</body>"); Рекурсия, рекурсия!!! Мы так не договаривались! :-) А вообще-то славно, мне действительно понравилось :-) Только конструкции вида <i>lala<i>dodo</i>ququ</i> будут разбираться неправильно (я понимаю, что это идиотизм - курсив в курсиве, но таблица в таблице бывает сплошь и рядом - лень писать просто). Я лично (хотелось мне, чтобы закрывающий тег можно было писать как </>) натворил что-то в духе: sub htmlex($){ $_=shift; my(@stack); s!(<([/a-z]+).*?>)! if ($2 eq '/'){ '</' . pop(@stack) .'>'; }else{ push @stack, $2; $1; }!geix; return $_; } --- ifmail v.2.15 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/3300a3392438.html, оценка из 5, голосов 10
|