ぐぐったコードが数字が入ったり大文字連続だったりのイレギュラーケースで壊滅状態だったので今さっきでっち上げてみた。
StringHelper.scala
object StringHelper {
private val separatees = "[a-z](?=[A-Z])|[0-9](?=[a-zA-Z])|[A-Z](?=[A-Z][a-z])|[a-zA-Z](?=[0-9])".r
def camel2Snake(s: String): String = separatees.replaceAllIn(s, _.group(0) + '_')
.toLowerCase
}