Rubystring的gsub和子方法有什么区别?
我一直在仔细阅读String
的文档,并且看到了以前从未注意到的:sub
方法。 我一直在使用:gsub
,看起来它们本质上是一样的。 任何人都可以向我解释这个区别吗? 谢谢!
g
代表全球范围,全球范围内代替:
在irb中:
>> "hello".sub('l', '*') => "he*lo" >> "hello".gsub('l', '*') => "he**o"
不同之处在于, sub
仅replace指定模式的第一个匹配项,而gsub
则替代了所有匹配项(即全局replace)。
value = "abc abc" puts value # abc abc # Sub replaces just the first instance. value = value.sub("abc", "---") puts value # --- abc # Gsub replaces all instances. value = value.gsub("abc", "---") puts value # --- ---