我不明白如何为两个或多个正则表达式使用模式匹配。例如,我编写了以下程序:
import scala.io.Source.{fromInputStream}
import java.io._
import java.net._
object craw
{
def main(args: Array[String])
{
val url=new URL("http://contentexplore.com/iphone-6-amazing-looks/")
val content=fromInputStream(url.openStream).getLines.mkString("\n")
val x="<a href=(\"[^\"]*\")[^<]".r.
findAllIn(content).
toList.
map(x=>x.substring(16,x.length()-2)).
mkString("").
split("/").
mkString("").
split(".com").
mkString("").
split("www.").
mkString("").
split(".html").
toList
print(x)
}
}
上面读入了所有的锚标签。
import scala.io.Source.{fromInputStream}
import java.io._
import java.net._
object new1
{
def main(args: Array[String])
{
val url=new URL("http://contentexplore.com/iphone-6-amazing-looks/")
val content=fromInputStream(url.openStream).getLines.mkString("\n")
val x="<p>.*?</p>".r.
findAllIn(content).
toList.
map(x=>x.substring(3,x.length()-4)).
mkString("").
split("</strong>").
mkString("").
split("</em>").
mkString("").
split(";").
mkString("").
split("<em>").
mkString("").
split("<strong>").
mkString("").
split(" ").
toList
print(x)
}
}
以上内容读入所有段落标签。
我想使用模式匹配将这两个正则表达式组合成一个程序。可以指导我如何使用两个以上的正则表达式吗?
注意这个问题与组合正则表达式有关,与如何有效地解析 HTML 无关。