Программирование > Регулярные выражения

Все, кроме выражения

<< < (3/3)

metton:
Vladn
То что они read-only я понял. Смущает тор, что я не нашёл про это ничего в "Программировании на Perl".


--- Цитировать ---Vladn:
что приводит к перезаписи $1 $2 и $3, точнее - записи в них пустых значений
--- Конец цитаты ---

А вот это вообще не понял. Почему пустых?

Vladn:
metton

--- Цитировать ---А вот это вообще не понял. Почему пустых?
--- Конец цитаты ---

После каждой операции =~s/// или =~/// переменные $1, $2 и т.д. обновляются в соответствии с этой операцией. А т.к. в выражении =~s?1?2? скобок нет, то все эти переменные принимают нулевое значение. По крайней мере это так на моем ActivePerl 5.6.1

Я придумал более красивое решение мою же поставленной задачи:

--- Код: ---sub change{
 my $i=1;
 my %coms;
 while ($_[0]=~s/()/\\x07$i/s) {
  $coms{$i}=$1;
  $i++;
  }
 $_[0]=~s/\\&/\\&amp;/g;
 while ($i>1) {
   $i--;
   $_[0]=~s/\\x07$i/$coms{$i}/;
   }
  }

--- Конец кода ---
Т.е. сначала удаляем комментарии, затем заменяем амперсанты, затем восстанавливаем комментарии.

metton:
Vladn

--- Цитировать ---После каждой операции =~s/// или =~/// переменные $1, $2 и т.д. обновляются в соответствии с этой операцией
--- Конец цитаты ---

Да, об этом я что-то не подумал.


--- Цитировать ---более красивое решение
--- Конец цитаты ---

Красивое? Сначала красота решения у тебя отождествлялась с количеством строчек (а именно одной). Я такое и написал ;)

[OFF]зы: берегись Yukko ;) :D[/OFF]

Vladn:

--- Цитировать ---Красивое?
--- Конец цитаты ---

Читай внимательнее: более красивое
Объясняю для программистов:

--- Код: ---var [Красивое] = 1 строчка;
var [Более красивое] = меньше строчек OR более эффективное, чем менее красивое;
--- Конец кода ---


Вообще-то я немного тормознул: два раза написал одно и то же решение. Просто я думал, что первое решение было другим.

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии