我想将字符串中连字符后的第一个字母替换为大写字母。
“this-is-a-string”应该变成“thisIsAString”
"this-is-a-string".gsub( /[-]\w/, '\1'.upcase )
我希望\1 能够重新插入我的第二个字符匹配\w 并且我可以将其大写。
如何使用\0\1 等选项?
最佳答案
您需要捕获 \w
才能引用子匹配。
使用
"this-is-a-string".gsub(/-(\w)/) {$~[1].upcase}
# => thisIsAString
请参阅Ruby demo
请注意,{$~[1].upcase}
block 内的 $~[1]
实际上是使用 (\w)< 捕获的文本
中,$~
是用 gsub
实例化的 matchdata 对象,[1]
是用一对定义的第一个组的索引未转义的括号。
在 Use Parentheses for Grouping and Capturing 中查看有关捕获组的更多详细信息正则表达式.info 部分。
关于Ruby Regexp gsub,替换第二个匹配字符的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40402486/