31

我正在尝试在 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)

4

1 回答 1

42

你正在寻找

"foo /(bar)".gsub(/(?<my_word> \(.*?\) )/x) do |match|
  puts "$1 = #{$1} and $my_word = #{$~[:my_word]}"
end
于 2013-05-16T05:11:40.870 回答