仅用gsub替换字符串中的整数

am46iovg  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(304)

我试图去掉这个字符串中的整数,但保留浮点数。我在网上试用了下面的正则表达式,并突出显示了正确的部分,但在使用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 ;
bvuwiixz

bvuwiixz1#

您的搜索模式很好(对于特定的输入-例如,我想它不会正确地处理负整数),但是 gsub 只是不更改接收器(原始字符串)-它返回一个包含所有替换的新接收器。
所以要么使用 gsub! 或者,如果还需要原始变量,请将字符串重新指定给另一个变量。

相关问题