Требуется гуру RegEx: я хочу убрать имена библиотек при упаковке проекта sbt. А именно если моя зависимость называется
val in = "scala-swing-2.9.0-1.jar"
Я хочу переписать имя как
"scala-swing.jar"
например. дан метод
def rewrite(p: util.matching.Regex, s: String) = s match {
case p(name) => name + ".jar"
case _ => s
}
Я пытался
rewrite("""([^-_]*)[-_].*.jar""".r, in) // gives "scala.jar"
и
rewrite("""(.*)[-_]\d.*.jar""".r, in) // gives "scala-swing-2.9.0.jar"
...
EDIT:
Бонусные вопросы:
val in2 = "audiowidgets_2.9.0-1-0.10-SNAPSHOT.jar"
require(rewrite( ???, in2 ) == "audiowidgets.jar")
val in3 = "jsyntaxpane-0.9.5-b29.jar"
require(rewrite( ???, in3 ) == "jsyntaxpane.jar")