0
使用在Heroku上運行的Rails,我遇到了在字符串中找到正則表達式匹配但沒有爲括號中的組設置$ 1變量的情況。這隻發生在我在Heroku上的生產環境中,而不是在我的本地系統上(Ruby ruby-1.9.2-p0的Rails 3.0.7)。該代碼是在Heroku上不能正常工作的Ruby匹配結果
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) =
任何答案爲是怎麼回事這裏?
你在Heroku上使用什麼棧本場比賽的位置?你確定它符合你的開發環境嗎? – aubreyrhodes
您可能希望使用's +'而不是正則表達式中的空格。根據環境,空間可以有很多不同的值 –
這是一個好主意,Michael,雖然表達式匹配,但仍然應該返回1美元的值,不應該嗎?奧布里,堆棧是aspen-mri-1.8.6,* bamboo-mri-1.9.2,bamboo-ree-1.8.7,雪松。某些版本的Ruby對於匹配的返回值有不同的行爲嗎? –