我确定我可以使用正则表达式来做到这一点,但我无法使用普通 delete!
找到对此行为的任何解释。 :
#1.9.2
>> "helllom<em>".delete!"<em>"
=> "hlllo"
The docs对此无话可说。在我看来,它正在治疗'<em>'
作为一套。这在哪里记录?
编辑:在我的辩护中,我在删除的文档中寻找 < 和 > 的特殊处理。没有看到任何关于它的信息并尝试了谷歌,谷歌也没有任何关于它的说法——因为它不存在。
最佳答案
String#delete
是那些难以解释的不幸方法之一(我不知道用例是什么)。在实践中,我总是使用带有空字符串的 gsub 作为第二个参数。
'helllom<em>'.gsub '<em>', '' # => "helllom"
请注意 String#gsub!
也有一些奇怪的地方,你不应该依赖它的返回值,如果它不改变字符串,它将返回 nil
,所以最好使用 gsub
如果你依赖于返回值,或者如果你想改变字符串,那么使用 gsub!
但不要使用任何其他东西那条线。
关于ruby - 如何使用 String.delete 从 Ruby 中的字符串中删除 '<em>'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9074933/