从包含<classname:mem_ref>类型部分的字符串中替换内存引用/地址

时间:2018-12-24 12:33:43

标签: ruby

我有这样的字符串:

NoMethodError: undefined method 'sort_by!' for #<Hash:0x00007f98f03c84e0>

这些字符串可以包含n个这样的部分:<Hash:0x00007f98f03c84e0>

在这里, 0x00007f98f03c84e0只是内存引用的占位符。并且Hash也是此内存引用所在的对象的类型。无需讨论这些字符串是如何形成的,但最后我得到的字符串可以包含<ClassName:MEM_REF>之类的东西而且我必须替换MEM_REF部分。

回到我的原始示例,我想用我喜欢的任何字符串删除此内存引用部分0x00007f98f03c84e0。同样,0x00007f98f03c84e0是一个示例,它将是任意的内存地址。

正在寻找一种使用红宝石的优雅方法。

1 个答案:

答案 0 :(得分:2)

尝试在ruby控制台中遵循正则表达式,应该可以:/:[0-9]x[0-9A-Za-z]*(?=>)/

要用其他任何方法掩盖这些裁判,请尝试input_string.gsub!(/:[0-9]x[0-9A-Za-z]*(?=>)/, "REPLACE_TEXT")