簡體   English   中英

Ruby Regexp gsub,替換第二個匹配字符的實例

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM