Ruby regexp将snake_casing转为PascalCasing?

bea*_*akr 3 ruby regex pascalcasing

我创建了一个使用以下函数的Web框架:

def to_class(text)
    text.capitalize
    text.gsub(/(_|-)/, '')
end
Run Code Online (Sandbox Code Playgroud)

要打开那些目录名snake_casedhyphen-casedPascalCased您的项目的类名称.

问题是,该功能仅去除_-,不利用下一个字母.使用.capitalize,或者.upcase,有没有办法让你的snake/hyphen_/-cased名字成为正确的PascalCased类名?

小智 5

gsub(/(?:^|[_-])([a-z])?/) { $1.upcase unless $1.nil? }
Run Code Online (Sandbox Code Playgroud)