Ruby Strings的gsub和sub方法有什么区别

Rya*_*nmt 102 ruby string

我一直在阅读String今天的文档,我看到了:sub以前从未注意过的方法.我一直在使用:gsub,看起来它们基本相同.任何人都可以向我解释这个区别吗?谢谢!

Ray*_*oal 194

g代表全球,在全球范围内取代(全部):

在irb:

>> "hello".sub('l', '*')
=> "he*lo"
>> "hello".gsub('l', '*')
=> "he**o"
Run Code Online (Sandbox Code Playgroud)

  • 我同意你的看法并不明显!Java称之为`replace`和`replaceAll`.但Ruby的根源在于使用`g`修饰符的Perl.这只是其中之一. (14认同)
  • 是啊.我现在知道了.在我的辩护中,我认为这不是很明显......直到现在,就是这样. (12认同)

Chr*_*nch 23

不同之处在于,它sub仅替换指定模式的第一个匹配项gsub,而是替换所有匹配项(即全局替换).

  • 如果你提前一分钟回答,可能会有1020多名代表你的代表.:) (7认同)

dee*_*pak 5

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                                # --- ---
Run Code Online (Sandbox Code Playgroud)