spi*_*ann 165
使用tr时要替换(翻译)单个字符.
tr匹配单个字符(不是通过正则表达式),因此字符不需要在第一个字符串参数中以相同的顺序出现.找到一个字符后,它将替换为第二个字符串参数中相同索引处找到的字符:
'abcde'.tr('bda', '123')
#=> "31c2e"
'abcde'.tr('bcd', '123')
#=> "a123e"
Run Code Online (Sandbox Code Playgroud)
使用gsub时,你需要使用正则表达式或当你想更换更长的字符串:
'abcde'.gsub(/bda/, '123')
#=> "abcde"
'abcde'.gsub(/b.d/, '123')
#=> "a123e"
Run Code Online (Sandbox Code Playgroud)
saw*_*awa 37
tr只能用一个固定字符替换单个字符(虽然你可以在一次tr调用中放置多个这种匹配)但速度很快.gsub可以使用正则表达式匹配复杂的模式,并用复杂的计算结果替换,但速度比tr.tr返回一个副本,str其中的字符from_str替换为相应的字符to_str.如果to_str短于from_str,则用最后一个字符填充以保持对应关系.
http://apidock.com/ruby/String/tr
gsub返回一个副本,str其中所有出现的模式都替换为第二个参数.该模式通常是Regexp; 如果以字符串形式给出,它包含的任何正则表达式元字符将按字面解释,例如\d将匹配后跟的反向d,而不是数字.
http://apidock.com/ruby/String/gsub
| 归档时间: |
|
| 查看次数: |
31441 次 |
| 最近记录: |