|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 11 Mar 2001 16:19:16 To : max@mccspectrum.ru Subject : Re: Regexp -------------------------------------------------------------------------------- Здравствуй, Maksim Sharenkov. В твоём письме от Sun, 11 Mar 2001 08:41:27 +0000 (UTC) написано: mmr> Hi All, mmr> Есть вопрос. mmr> Есть строка: mmr> $a = <<"END"; mmr> <base_list name=var> mmr> blah-blah-blah mmr> <base_list name=var> mmr> blah-blah-blah </base_list>> mmr> blah-blah-blah </base_list>> mmr> END mmr> Hадо выцепить и заменить последнее вложение <base_list>..</base_list> mmr> Пробовал сделать таким макаром: mmr> $a =~ mmr> s/(<base_list([^(<base_list)]|\n)+\/base_list>)/&some_for_fun($1)/igе); mmr> Hе получается.. Объясните, плз, где прокололся? perldoc perlre на предмет того, что такое []. И заодно - на предмет того, в каком единственном случае имеет хотя бы какой-то смысл писать |\n, и что надо писать вместо этого в этом самом случае. После осознания этого искать слов lookahead все в том же perldoc perlre. Тебя интересует negative. Hу и когда будешь искать "не <base_list" (кстати, уж тогда "не <base_list\b"), не забудь поискать также "не </base_list\b". Иначе ты заменишь не вполне вложение. -- Artem Chuprina E-mail: ran@ran.pp.ru Programmer FIDO: 2:5020/371.32 Memonet Ltd. Phone: +7-095-284-1356 --- ifmail v.2.15dev5 * Origin: NTV Internet (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1648371d62493.html, оценка из 5, голосов 10
|