下面的代码是我用来解析文件中的 href 链接的代码:
def parseFile(){
val source = scala.io.Source.fromFile("C:\\Users\\Adrian\\Desktop\\parsefile.txt")
val lines = source.getLines
val Pattern = "\\s*(?i)href\\s*=\\s*(\\\"([^\"]*\")|'[^']*'|([^'\">\\s]+))"
for (line <- source.getLines) {
println(line)
line match {
case Pattern(c) => println(c)
case _ => None
}
}
source.close ()
}
来自 parsefile 的示例行:
<A HREF="www.google.com" title="test">test</A>
但我收到这个 Eclipse 编译时错误:
Multiple markers at this line
- not found: value c
- value Pattern is not a case class constructor, nor does it have an unapply/unapplySeq method
应该如何声明 'c' 才能访问捕获组 String ?
我将上面的代码基于这个问题的公认答案:
如何在 Scala 中使用正则表达式进行模式匹配?使用的代码是:
val Pattern = "([a-cA-C])".r
word.firstLetter match {
case Pattern(c) => c bound to capture group here
case _ =>
}
欢迎对解析文件的替代方法提出任何建议。