我正在开发一个scala项目。实际上,我应该创建一些命令,如CLI命令。例如:exit,help,load filename,find name。 我想用正则表达式模式匹配来处理这些命令。但我有一些问题。如果string是“load filename”,则可以处理文件名。但是如果string是“load filename1 filename2”,我无法一起处理filename1和filename2。
我的代码如下:
val help = """help""".r
val exit = """exit""".r
val load = """load(\s+\w+)+?\s*""".r
val find = """findbyName(\s+\w+)+?\s*""".r
val input = "load filename1"
input match {
case help() => println("help")
case exit() => println("exit)
case load(filename) => println(filename)
case find(name) => println(name)
case _ => println "error"
}
***********************
console: filename1
如果是n个文件名,我想打印所有文件名。我该怎么办?