我有一个像这样的regualar Expression
private val operatorCallS = """(CALL) (?:\$([0-9][0-9]?)) (\w+)"""
private val operatorCall= operatorCallS.r
然后我有这样的比赛:
if (tokens.hasNext) {
tokens.next() match {
case opeatorCall(m) => ...
在这里,我希望组中包含数字,但m.group()
不起作用,此功能不存在。为什么呢?
答案 0 :(得分:0)
因为m不是正则表达式而是运算符调用的正则表达式的解析结果(字符串)。 为了解析token(tokens.next()),您可以使用以下代码:
val token = "CALL $12 aaa"
token match {
case operatorCall(m, m2, m3) => println(m); println(m2); println(m3)
case _ => println("No")
}