如何处理 (\w+)+?正则表达式作为模式匹配scala中的字符串列表
How to handle (\w+)+? regex as string list in pattern matching scala
我正在开发一个 Scala 项目。事实上,我应该创建一些命令,例如 CLI 命令。例如:退出、帮助、加载文件名、查找名称。
我想用正则表达式模式匹配来处理这些命令。但是我有一些问题。如果字符串是"load filename",文件名可以被处理。但是,如果字符串是 "load filename1 filename2",我无法同时处理文件名 1 和文件名 2。
我的代码如下:
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 个文件名,我想打印所有文件名。我该如何继续?
我正在开发一个 Scala 项目。事实上,我应该创建一些命令,例如 CLI 命令。例如:退出、帮助、加载文件名、查找名称。 我想用正则表达式模式匹配来处理这些命令。但是我有一些问题。如果字符串是"load filename",文件名可以被处理。但是,如果字符串是 "load filename1 filename2",我无法同时处理文件名 1 和文件名 2。
我的代码如下:
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 个文件名,我想打印所有文件名。我该如何继续?