Webページの解析(使用例)

URL(で示す情報源)を読み込むの使用例として提示する。

scala> val tx=io.Source.fromURL("http://www2.nagano.ac.jp/hiraoka/BP/15.html","utf-8").mkString

tx: String = "<!Doctype html>
<meta charset="utf-8">
 :
 :
"     // 途中省略した

scala> val re="<[^>]+>".r

val re="<[^>]+>".r	// HTMLのタグにマッチするシンプルな正規表現

scala> val tags=re.findAllIn(tx)	// マッチするパターンを抜き出して配列に
tags: scala.util.matching.Regex.MatchIterator = non-empty iterator
		// 実際には iterator が返るがOK

タグの配列 * ここで 右図のようなタグ(を値として持つ文字列)の配列が得られる。

scala> val tag="<([^ >]).*>".r
scala> tags.map(s=>{val tag(t)=s;t})
// 詳しい解説はここでは省略します