我想用带有大写字母的字符串中的连字符后面的第一个字母替换。
"这-is-a的字符串"应该成为" thisIsAString"
"this-is-a-string".gsub( /[-]\w/, '\1'.upcase )
我希望\ 1会重新插入我的第二个角色匹配\ w并且我可以将其大写。
如何使用\ 0 \ 1等选项?
答案 0 :(得分:3)
您需要捕获\w
才能引用子匹配。
使用
"this-is-a-string".gsub(/-(\w)/) {$~[1].upcase}
# => thisIsAString
请参阅Ruby demo
请注意,$~[1]
块中的{$~[1].upcase}
实际上是使用(\w)
捕获的文本,$~
是使用gsub
实例化的匹配数据对象,[1]
1}}是用一对未转义的括号定义的第一个组的索引。
在regular-expressions.info的Use Parentheses for Grouping and Capturing部分中查看有关捕获群组的详细信息。