在Ruby gsub块(regex)中使用命名捕获组

时间:2013-05-16 04:50:37

标签: ruby regex gsub

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

1 个答案:

答案 0 :(得分:28)

您正在寻找

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