我有一个处理逗号分隔的十进制数列表的 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
有没有更简洁的方法来做到这一点?我在文档中找不到,但我的函数看起来有点冗长,所以我想知道我是否忽略了一些东西。