使用在 Heroku 上运行的 Rails,我遇到了在字符串中找到正则表达式匹配但没有为括号中的组设置 $1 变量的情况。这只发生在我在 Heroku 上的生产设置中,而不是在我的本地系统上(带有 Ruby ruby-1.9.2-p0 的 Rails 3.0.7)。代码是
puts "**** gateway_reply=#{gateway_reply}"
match = gateway_reply =~ /ID: (\w+)/
msg_id = $1
puts "**** match=#{match}, msg_id ($1) = #{$1}"
在我的本地系统上,输出是
**** gateway_reply=ID: da2x7s5tjumtxtnk1krl8wps4wpasiee
**** match=0, msg_id ($1) = da2x7s5tjumtxtnk1krl8wps4wpasiee
在生产系统上,$1 没有设置:
**** gateway_reply=ID: 93e4ca3590207761af6f3b5ba3545b36
**** match=0, msg_id ($1) =
关于这里发生了什么的任何答案?