Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : RockMover                            2:5020/400     23 Apr 2000  15:19:48
 To : All
 Subject : Re: Вопрос по регэкспам
 -------------------------------------------------------------------------------- 
 
 Привет!
 
 Roman Karshiev wrote:
 
 > 
 > Есть мультистрока типа
 > 
 > @s=<<XXX;
 > 11111
 > 2222222
 > 33333
 > XXX
 > 
 > $s=links($s);
 > 
 > (Кстати, это будет то же самое, что
 > open f,"$file";
 > @s=<f>;
 > close f;
 > $s=links($s);
 > или нет?)
 > 
 > Hужно все фрагменты типа
 > #l
 > #i xxxx
 > xxxx
 > #i yyyy
 > yyyy
 > #i zzzz
 > #/l
 > 
 > Заменить на
 > <ul>
 > <li><b>xxxx
 > xxxx</b>
 > <li><b>yyyy
 > yyyy</b>
 > <li><b>zzzz</b>
 > </ul>
 > 
 > Для однострочных #i всё понятно:
 > 
 > s/#l/<ul>\n/g;
 > s/#ib (.*)/<li><b>$1</b>\n/g;
 > /#\/l\<\/ul>\n/g;
 > 
 > А вот как сделать, чтобы внутри <b>...</b> входил конец строки и все строки
 > до следующего # в начале строки?
 > Всякие игры с \s ^ и т.п. у меня не выходят...
 
   Во-первых, почитай повнимательней документацию, если она у тебя есть,
 там ты узнаешь, что @s и $s ничего общего не имеют, кроме имени, и что
 для использования ^ не в начале регэкспа нужен модификатор m.
   Во-вторых, если в файле больше ничего (кроме указанного тобой)
 нет, просто напиши
 
 while(<>) {
   chomp;
   $_ .= "</b>\n" unless /^#/;
   s/#l/<ul>\n/;
   s/#i(.*)/<li><b>$1\n/;
   s/#\/l\<\/ul>\n/g;
   print; 
 }
 
 WBR,  RockMover
 I am The Master of Flame...
 --- ifmail v.2.15dev4
  * Origin: Azeroth delenda est! (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Вопрос по регэкспам   RockMover   23 Apr 2000 15:19:48 
Архивное /ru.perl/28731960797d.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional