我對Scala非常陌生,尤其是令人敬畏的模式匹配。但是,我發現這個代碼不起作用。我創建了一個包含匹配詞的「詞典」,然後我使用了理解,因此每一行都會與詞典中的詞匹配。Scala模式匹配無法匹配特定字
這是用來創建正則表達式的地圖。
val dictionary = Map(
"""will""" -> 1,
"""going to""" -> 2,
"""future""" -> 3
)
這是主要的for循環:
for (
ln <- file.getLines();
(word, loc) <- dictionary
){
val regex = word.r
ln match {
case regex(ln) => {totalLine += 1
println("Match detected: " + word)
val originalElem = doc.BOWVector(dictionary.get(ln).get)
doc.BOWVector.updated(dictionary.get(ln).get, originalElem+1) //vector is updated
}
case _ => {totalLine += 1}
}
}
當我使用ln.contains("will")
和它的作品!然而,正則表達式不起作用。爲什麼?
謝謝!其實'.unanchored'做了很大的改變,並使這個程序的工作! –