角かっこ内にあるすべてのダッシュを置き換えたいが、そうでないものは残します。
弦:dont-change-this[only-change-inside-brackets]
結果:dont-change-this[only_change_inside_brackets]
私が現在行っている方法は、角括弧内のすべてをキャプチャしてから置き換えることです。
regex = /(\[([a-z-]+)\])/
testString = "dont-change-this[only-change-inside-brackets]"
testString.match regex
testString.sub(regex, $1.gsub(/-/, '_'))
それは機能しますが、これを1つの式だけで行う方法があるかどうか疑問に思っていました.