Ruby 正则表达式 gsub,替换第二个匹配字符的实例
Ruby Regexp gsub, replace instances of second matching character
我想用大写字母替换字符串中连字符后的第一个字母。
"this-is-a-string" 应该变成 "thisIsAString"
"this-is-a-string".gsub( /[-]\w/, ''.upcase )
我希望 \1 会重新插入我的第二个字符匹配 \w 并且我可以将它大写。
如何使用 \0 \1 等选项?
您需要捕获 \w
才能引用子匹配项。
使用
"this-is-a-string".gsub(/-(\w)/) {$~[1].upcase}
# => thisIsAString
请注意,{$~[1].upcase}
块内的 $~[1]
实际上是使用 (\w)
捕获的文本,$~
是使用 gsub
实例化的匹配数据对象,并且[1]
是用一对未转义的括号定义的第一个组的索引。
在 regular-expressions.info.
的 Use Parentheses for Grouping and Capturing 部分中查看有关 捕获组 的更多详细信息
我想用大写字母替换字符串中连字符后的第一个字母。
"this-is-a-string" 应该变成 "thisIsAString"
"this-is-a-string".gsub( /[-]\w/, ''.upcase )
我希望 \1 会重新插入我的第二个字符匹配 \w 并且我可以将它大写。
如何使用 \0 \1 等选项?
您需要捕获 \w
才能引用子匹配项。
使用
"this-is-a-string".gsub(/-(\w)/) {$~[1].upcase}
# => thisIsAString
请注意,{$~[1].upcase}
块内的 $~[1]
实际上是使用 (\w)
捕获的文本,$~
是使用 gsub
实例化的匹配数据对象,并且[1]
是用一对未转义的括号定义的第一个组的索引。
在 regular-expressions.info.
的 Use Parentheses for Grouping and Capturing 部分中查看有关 捕获组 的更多详细信息