スケープ文字を交換しました。式は正常に機能します。次を使用して\\s+
ください。
scala> val dateregex = "</span>\\s+[a-zA-Z0-9,:;& \t]+\\s+</div>".r
dateregex: scala.util.matching.Regex = </span>\s+[a-zA-Z0-9,:;& ]+\s+</div>
scala> val d = dateregex findAllIn source
d: scala.util.matching.Regex.MatchIterator = non-empty iterator
scala> d.toSet
res9: scala.collection.immutable.Set[String] =
Set(</span>
September 11, 2013:
</div>)
ただし、日付だけを取得したい場合は、少し「貪欲」すぎます。
また、これをページ全体に適用する場合は、div class="article-dateline" を一致させるか、クエリを実行して正規表現を適用することを検討してください。
代わりにこの正規表現を使用します:
編集: @ pagoda_5b が示唆するように、二重の \
val dateregex = new scala.util.matching.Regex("""</span>\s+([a-zA-Z]+)\s+([0-9]+),\s+([0-9]+)""","month","day","year")
val d = dateregex findFirstIn source match {
case Some(dateregex(month,day,year)) => println(s" Month= $month, Day=$day, Year=$year")
case None => println("No Match")
}
result> Month= September, Day=11, Year=2013