只将字符串中的整数替换为gsub



我试图去掉这个字符串中的整数,但保留了浮点值。我已经在线尝试了下面的regex,并突出显示了正确的部分,但注意到当我使用gsub 时会发生这种情况

tops = "17500 dw.sapAGZ_D00 pf=/usr/sap/A  8.0 17488 dw.sapAGZ_D00 pf=/usr/sap/A  7.1 17489 dw.sapAGZ_D00 pf=/usr/sap/A  7.0 17493 dw.sapAGZ_D00 pf=/usr/sap/A  5.9 17490 dw.sapAGZ_D00 pf=/usr/sap/A  5.7 17495 dw.sapAGZ_D00 pf=/usr/sap/A  5.4 17499 dw.sapAGZ_D00 pf=/usr/sap/A  5.0 17480 dw.sapAGZ_D00 pf=/usr/sap/A  4.3 17492 dw.sapAGZ_D00 pf=/usr/sap/A  4.0"
tops.gsub(/(?<=s|^)d+(?=s|$)/, '--- ')
puts tops ;

您的搜索模式很好(例如,我想它不会正确处理负整数(,但gsub不会更改接收器(原始字符串(,它会返回一个包含所有替换的新字符串。

因此,如果您也需要原始变量,请使用gsub!或将字符串重新分配给另一个变量。

最新更新