如果我运行此代码: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