|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Serg 2:5020/400 05 Dec 2002 14:02:11 To : Serg Subject : Re: Работа с HTML NEW: Логика regexp серия 2:) -------------------------------------------------------------------------------- Wed Dec 04 2002 21:37, Serg wrote to Victor Wagner: S> Теперь усложним задачу.: S> $prdat='tjsrg <textarea name=desc>iojioertgj</textarea>ggfg<textarea S> name="words">ggbbnn</textarea>gghhtt'; S> my @mas=$prdat=~/<textarea name=desc>.*<\/textarea>/gsi; S> print $mas[0]; S> Как думает, что теперь выведет? Hе знаю, что думаете, но выведет: S> '<textarea name=desc>iojioertgj</textarea>ggfg<textarea S> name="words">ggbbnn</textarea>'. S> И как вы наверное догадались, я мечтаю, что б мой регэксп изменился так, S> что б вывела она то же что и в первом примере:). Как сделать? Hу а если S> по-русски - как указать ей, что делать .* до того момента, пока она не S> повстречает </textarea> на своем пути? Самое простое, но не оригинальное решение я сам и нашел, вот оно: $prdat='tjsrg <textarea name=desc>iojioertgj</textarea>ggfg<textarea name="words">ggbbnn</textarea>gghhtt'; my @mas=$prdat=~/<textarea name=desc>.*<\/textarea\>/gsi; if ($mas[0]) { $serch='</textarea>'; $n1=index($mas[0],$serch); $mas[0]=substr($mas[0],0,$n1+length($serch)); } print $mas[0]; Пока я им и пользуюсь, но хотелось бы полностью на 1 регэкспе... ЗЫ: почитал perldoc perlre, и поскольку не блестаю в знании аглицкого (и русского тоже:)), никак не пойму - что есть выражение zero-length в недословном переводе... --- ifmail v.2.15dev5 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/16679e0d6e50e.html, оценка из 5, голосов 10
|