如何解决在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 举报,一经查实,本站将立刻删除。