微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Ruby中,为什么“ omega-3dHA”gsub/ \\\\ b[a-z]/,\'\\\\ 0\'.upcase不起作用?

如何解决在Ruby中,为什么“ omega-3dHA”gsub/ \\\\ b[a-z]/,\'\\\\ 0\'.upcase不起作用?

| 我想大写每个单词的第一个字符,其余部分保持不变(因此与Rails的
titleize
不同,后者将其余部分小写)。第一行是测试,第三行有效,但是我想知道为什么第二行不起作用?
ruby-1.9.2-p180 :026 > \"omega-3 (dHA)\".gsub(/\\b([a-z])/,\'#\\0#\')
 => \"#o#mega-3 (#d#HA)\" 

ruby-1.9.2-p180 :027 > \"omega-3 (dHA)\".gsub(/\\b([a-z])/,\'\\0\'.upcase)
 => \"omega-3 (dHA)\" 

ruby-1.9.2-p180 :028 > \"omega-3 (dHA)\".gsub(/\\b([a-z])/) {|s| s.upcase}
 => \"Omega-3 (DHA)\" 
    

解决方法

\'\\0\'.upcase
调用字符串
\'\\0\'
upcase
方法-调用括号在Ruby中是可选的。当然哪一个都不起作用,所以第二行只是
.gsub(/.../,\'\\0\')
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。