コンマ区切りの 10 進数のリストを処理する Scala コンビネーター パーサーがあります。
object NumberListParser extends RegexParsers {
def number: Parser[Double] = """\d+(\.\d*)?""".r ^^ (_.toDouble)
def numbers: Parser[List[Double]] = rep1sep(number, ",")
def itMatches(s: String): Boolean = parseAll(numbers, s) match {
case _: Success[_] => true
case _ => false
}
}
パターンに一致する文字列が与えられると、関数itMatches
は戻ります。true
例えば:
NumberListParser.itMatches("12.4,3.141") // returns true
NumberListParser.itMatches("bogus") // returns false
これを行うためのより簡潔な方法はありますか?ドキュメントには見つかりませんでしたが、私の関数は少し冗長に見えるので、何かを見落としているのではないでしょうか。