ruby 将字符串中给定分隔符后的第一个字母转换为大写[已关闭]

lfapxunr  于 2023-02-03  发布在  Ruby
关注(0)|答案(3)|浏览(117)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
2天前关闭。
Improve this question
我希望第一个字母和:之后的每个字母都使用regex大写。
我的字符串:order:user:name
预期值:Order:User:Name

eufgjt7s

eufgjt7s1#

正则表达式在许多语言中都非常强大和有用,但如果你不完全掌握它们,它也很复杂,很难维护。这是一个没有正则表达式的示例。它产生预期的结果,所以第一个单词是大写的,尽管它前面没有“:“。

my_str = "order:user:name"
new_str = my_str.split(":").map(&:capitalize).join(":")
kfgdxczn

kfgdxczn2#

对字符串的开头或":"使用回顾,如下所示(在IRB中):

> my_str="order:user:name"
=> "order:user:name"
> my_str.gsub(/(?<=^|:)([a-z])/){|c| c.upcase}
=> "Order:User:Name"
cl25kdpy

cl25kdpy3#

你可以使用这个简单的正则表达式:

:[a-z]

也就是说,字符:后跟az之间的任何小写字母。然后,您可以使用gsub方法,如下例所示:

"aa:gfdhdf:bbb".capitalize.gsub(/:[a-z]/) {|s| s[0] + s[1].upcase}

相关问题