LINUX.ORG.RU

Помогите понять и простить^W^W ошибку в Ruby

 ,


0

0
irb(main):005:0* a = 'sys-apps/sandbox-2.6'
=> "sys-apps/sandbox-2.6"
irb(main):006:0> version = '2.6'
=> "2.6"
irb(main):007:0> 
irb(main):008:0* a.match(/-#{version}$/)
=> #<MatchData "-2.6">
irb(main):009:0> a.slice!(/-#{version}$/, '')
IndexError: undefined group name reference: 
	from (irb):9:in `slice!'
	from (irb):9
	from /usr/bin/irb:12:in `<main>'
irb(main):010:0> 
★★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Слайс у строки не так работает. То, что ты хочешь, видимо, работает так: a.slice!(/-#{version}$/, 0). Если передаешь регулярку, оно принимает либо номер группы, либо ее имя (для именованных матчей).

cdshines ★★★★★
()
Ответ на: комментарий от cdshines

К примеру, с именованными захватами:

irb(main):029:0> a.slice!(/(?<ver>-#{version}$)/, 'ver')
=> "-2.6"
irb(main):030:0> a
=> "sys-apps/sandbox"

cdshines ★★★★★
()
Последнее исправление: cdshines (всего исправлений: 1)
Ответ на: комментарий от anonymous

вот оно. много работать плохо

спс

ZuBB ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.