1
私は次の文字列を持っています:1-10 employees
。スカラー正規表現複数の整数
は、ここに私の正規表現の文val regex = ("\\d+").r
私はImが一致するデータを抽出し、大きいどの返された値を決定するための方法を見つけようとしている必要があり問題です。ここで
は、私は私があなたの元の質問で混乱していたと思ったものをIMはそれを
def setMinAndMaxValue(currentCompany: CurrentCompany, matchIterator: Iterator[Regex.Match]): CurrentCompany = {
var max = 0
println(s"matchIterator - $matchIterator")
matchIterator.collect {
case regex(s: String) => println("found string")
case regex(IntConv(x)) =>
println("regex case")
if (x > max) max = x
}
val (minVal, maxVal) = rangesForMaxValue(max)
val newDetails = currentCompany.details.copy(minSize = Some(minVal), maxSize = Some(maxVal))
currentCompany.copy(details = newDetails)
}
object IntConv {
def unapply(s : String) : Option[Int] = Try {
Some(s.toInt)
}.toOption.flatten
}
あなたの正規表現は間違っています(最初の括弧は引用符の外にあります)。何を試しましたか?あなたはscaladoc http://www.scala-lang.org/api/current/#scala.util.matching.Regexを見ましたか?この例では、データを抽出する方法を示しています。 –
@TheArchetypalPaul私は謝罪します。私がデータをどのように処理しているのかを含まないのは私の犯罪者です。イテレータの型はRegex.Matchですから、実際には型が必要です。同じ。 – TheM00s3
あなたの実際の問題が今何か分かりません。何があなたのために働いていないのですか? –