[英]Ruby Regexp gsub, replace instances of second matching character
我想用大寫字母替換字符串中連字符后的第一個字母。
“ this-is-a-string”應變為“ thisIsAString”
"this-is-a-string".gsub( /[-]\w/, '\1'.upcase )
我希望\\ 1可以重新插入第二個字符匹配\\ w並且可以將其大寫。
一個人如何使用\\ 0 \\ 1 etc選項?
您需要捕獲\\w
才能引用子匹配。
采用
"this-is-a-string".gsub(/-(\w)/) {$~[1].upcase}
# => thisIsAString
觀看Ruby演示
需要注意的是$~[1]
內的{$~[1].upcase}
塊實際上是與捕獲的文本(\\w)
,則$~
是與實例化的對象matchdata gsub
和[1]
是第一的索引用一對未轉義的括號定義的組。
請參閱regular-expressions.info的“ 使用括號進行分組和捕獲”部分中有關捕獲組的更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.