Sono nuovo di scala. Sto cercando di abbinare una stringa delimitata da virgolette doppie, e io sono un po 'perplesso per il seguente comportamento:Scala Espressioni regolari (stringa delimitata da virgolette)
se faccio la seguente:
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!")
}
ottengo
"test" matches!
altrimenti , se faccio la seguente:
tidyTokens.foreach {
token => token match {
case regex(token) => println (token + " matches!")
case _ => println ("No match for token " + token)
}
}
ottengo
No match for token 1
No match for token "test"
No match for token 'c'
No match for token -23.3
Perché il "test" non corrisponde nel secondo caso?
Grazie! Anche per il riferimento agli oggetti Extractor! – gbgnv