|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 05 Dec 2002 17:19:39 To : "Serg" Subject : Re: Работа с HTML NEW: Логика regexp серия 2:) -------------------------------------------------------------------------------- Здравствуй, Serg. 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> на своем пути? 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> if ($mas[0]) S> { S> $serch='</textarea>'; S> $n1=index($mas[0],$serch); S> $mas[0]=substr($mas[0],0,$n1+length($serch)); S> } S> print $mas[0]; S> Пока я им и пользуюсь, но хотелось бы полностью на 1 регэкспе... S> ЗЫ: почитал perldoc perlre, и поскольку не блестаю в знании аглицкого (и S> русского тоже:)), никак не пойму - что есть выражение zero-length в S> недословном переводе... Hулевой длины. То есть данный оператор чего-то где-то проверяет, но ни одного символа из проверяемой строки не "ест". Т.е. позиция не сдвигается. -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/14454fffb7b5b.html, оценка из 5, голосов 10
|