我期待在Ruby的更换:http://www.ruby-doc.org/core/classes/String.html#M001144Ruby的替换工作如何?
它似乎没有道理给我,你叫替换它取代整个字符串。
我期待:
replace(old_value, new_value)
就是我要找GSUB呢?
替换似乎与其他大多数语言不同。
我期待在Ruby的更换:http://www.ruby-doc.org/core/classes/String.html#M001144Ruby的替换工作如何?
它似乎没有道理给我,你叫替换它取代整个字符串。
我期待:
replace(old_value, new_value)
就是我要找GSUB呢?
替换似乎与其他大多数语言不同。
是的,它是gsub
,它取自awk语法。我猜replace
代表字符串的内部表示,因为根据文档,被污染的东西也被删除了。
我想你觉得replace
没有意义的原因是因为有分配运算符=
(与gsub
没有多大关系)。
重要的一点是String
实例是可变对象。通过使用replace
,您可以更改字符串的内容,同时保留其身份作为对象。比较:
a = 'Hello' # => 'Hello'
a.object_id # => 84793190
a.replace('World') # => 'World'
a.object_id # => 84793190
a = 'World' # => 'World'
a.object_id # => 84768100
请参阅replace
没有改变String对象的ID,而简单的任务做了更改。这种差异有一些后果。例如,假设您为字符串实例分配了一些实例变量。通过replace
,该信息将被保留,但如果您只将相同的变量分配给不同的字符串,则所有信息都将消失。
好吧,现在我明白了,谢谢! – Blankman 2011-04-06 03:10:35
我已经标记了-1因为你已经得到了答案,你已经知道API文档在哪里,显然,你甚至知道如何阅读它们。那么问题是什么?这不是标题所说的,“Ruby如何取代工作?”问题可能是“我真的需要一个简单的替换正则表达式吗?”或者...不确定。 – 2011-04-06 02:41:47
+1,因为我认为它不值得赞扬。这不是一个不明确的问题,它不是垃圾邮件,它不是无关紧要的。 – 2011-04-06 02:43:01