我正在尝试在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)
答案 0 :(得分:28)
您正在寻找
"foo /(bar)".gsub(/(?<my_word> \(.*?\) )/x) do |match|
puts "$1 = #{$1} and $my_word = #{$~[:my_word]}"
end