我在 Ruby 2.0 中的正则表达式中遇到命名捕获问题。我有一个字符串变量和一个插值的正则表达式:
str = "hello world"
re = /\w+/
/(?<greeting>#{re})/ =~ str
greeting
它引发以下异常:
prova.rb:4:in
<main>': undefined local variable or method
greeting' for main:Object (NameError)
shell 返回 1
但是,插值表达式在没有命名捕获的情况下工作。例如:
/(#{re})/ =~ str
$1
# => "hello"