gsub
我知道在 ruby 中,您可以使用正则表达式搜索和替换字符串。
但是,是否可以在替换之前将表达式应用于搜索结果和替换。
例如,在下面的代码中,虽然您可以使用匹配的字符串,\0
但不能对其应用表达式(例如\0.to_i * 10
),这样做会导致错误:
shopping_list = <<LIST
3 apples
500g flour
1 ham
LIST
new_list = shopping_list.gsub(/\d+/m, \0.to_i * 10)
puts new_list #syntax error, unexpected $undefined
它似乎只适用于字符串文字:
shopping_list = <<LIST
3 apples
500g flour
1 ham
LIST
new_list = shopping_list.gsub(/\d+/m, '\0 string and replace')
puts new_list