如果我運行此代碼:gsub緩存組?
"Retailer Staff $5.60".gsub(/.*\$(\d+(\.\d+)?).*/, $1)
# => 5.60
,然後我將值改爲:
"Retailer Staff $5".gsub(/.*\$(\d+(\.\d+)?).*/, $1)
# => 5.60
答案停留在5.60
。然後,如果我再次運行同一行,則會得到:
"Retailer Staff $5".gsub(/.*\$(\d+(\.\d+)?).*/, $1)
# => 5
發生了什麼?爲什麼相同的代碼運行兩次會給出兩個答案?是gsub
緩存的東西?
如果你正在尋找中提取值,可以考慮使用'scan',而不是'gsub'。 – tadman
使用''零售商員工$ 5.60'來獲取金額[/ \ $(\ d +(\。\ d +)?)/,1]' – Stefan