我是scala的新手。我想匹配双引号分隔字符串,我有点受以下行为不解:Scala正则表达式(用双引号分隔的字符串)
如果我做了以下内容:
val stringRegex = """"([^"]*)"(.*$)"""
val regex = stringRegex.r
val tidyTokens = Array[String]("1", "\"test\"", "'c'", "-23.3")
tidyTokens.foreach {
token => if (token.matches (stringRegex)) println (token + " matches!")
}
我得到
"test" matches!
否则如果我做到以下几点:
tidyTokens.foreach {
token => token match {
case regex(token) => println (token + " matches!")
case _ => println ("No match for token " + token)
}
}
我得到
No match for token 1
No match for token "test"
No match for token 'c'
No match for token -23.3
为什么在第二种情况下“测试”不匹配?
谢谢!也可以参考提取器对象! – gbgnv 2013-02-27 18:44:59