Подтвердить что ты не робот

Использование названных групп захвата внутри блоков Ruby gsub (regex)

Я пытаюсь использовать именованную группу захвата внутри блока в Ruby. $1 все еще работает, но я хотел бы ссылаться на него, используя имя, которое я дал.

"foo /(bar)".gsub(/(?<my_word> \(.*?\) )/x) do |match|
  puts "$1 = #{$1} and $my_word = #{$my_word}"
end

Ожидаемое: $1 = (bar) and $my_word = (bar)

4b9b3361

Ответ 1

Вы ищете

"foo /(bar)".gsub(/(?<my_word> \(.*?\) )/x) do |match|
  puts "$1 = #{$1} and $my_word = #{$~[:my_word]}"
end