[perl, regexp] засплитить подстроку одним регэкспом невозможно?
$ perl -e 'print join( "..", split( /,/, ( "5,6 [1,2,3,4] 7,8" =~ /\[(.*)\]/ )[ 0 ] ) "\n";'
1..2..3..4
смешно
ладна, фиг с ним
ладна, фиг с ним
мм? что смешного?
ну то что вариант со сплитом итак изначальный
уж запистаь любое выражение в одну строку проблем не составит
ты бы еще предложил:
типа тож в одну строку
уж запистаь любое выражение в одну строку проблем не составит
ты бы еще предложил:
$tmp = ("5,6 [1,2,3,4] 7,8" =~ /\[(.*)\]/; @result = split /,/, $tmp;типа тож в одну строку
ты не писал, что надо "заменить следущий код на одну строку", не используя split.
а какая цель конечная?
от каких минусов этого решения тебе хочется избавиться? или просто академический интерес, как это сделать без split'а?
а какая цель конечная?
от каких минусов этого решения тебе хочется избавиться? или просто академический интерес, как это сделать без split'а?
ты не писал, что надо "заменить следущий код на одну строку", не используя split.ты точно тему сообщения видишь?
Re: [perl, regexp] засплитить подстроку одним регэкспом невозможно?цель? ну изначально было чтобы красиво выглядело
потом возник спортивные интерес плюс чтобы лучше понимать как оно устроено
можно делать вот так:
[xoft ~]$ perl -e '"5,6 [1,2,3,4] 7,8" =~ /\[(?:(\d+?{push @x, $1}?)+\]/; print "@x\n";'
1 2 3 4
?{...}а можно перловый код в заменах вызывать?
если можно то как?
например возведение всех чисел в строке в квадрат:
s/(\d+)/?{\1*\1}/g
если нельзя, то как покрасивше написать возведение в квадрат?
возиться с @+,@- ?
ааа
нашел

нашел
e — Evaluate 'replacement' as an expressionработает

s/(\d+)/$1*$1/eg
тебе чего надобно? какую подстроку от какой подстроки выделить, приведи пример.
s/(\d+)/$1*$1/eg
за этот регексп на сайте http://perlmonks.org/ тебя не то что изнасилуют(это будет абсолютная и бесповоротная радость) - тебя там в перловый ад сошлют (а в перловом аде парсят хтмл-теги).
s/(\d+)/$1*$1/eg
за этот регексп на сайте http://perlmonks.org/ тебя не то что изнасилуют(это будет абсолютная и бесповоротная радость) - тебя там в перловый ад сошлют (а в перловом аде парсят хтмл-теги).
Оставить комментарий
pitrik2
я так понимаю что все они попадают в $1 и типа каждый следущий предыдущий затирает, поэтому на выводе токо один остается
может это как-то можно поправить?
может можно как-то по-другому в одну команду получить массив 1,2,3,4 из ентой строки?
т.е. изначально задача стоит типа так: заменить следущий код на одну строку