如何从三个可能的不同输入中提取整数(秒)?

How to extract integer (seconds), from three possible different inputs?

正如我在标题中所述,如何从包含 int 和 char 的字符串输入中获取整数数据。

函数的可能输入是: (“1 分钟”...“9 分钟”), (“11:59” ... “12:00”) 和 (">>"),我可以假设是 0.

我想到了这个解决方案,但 returns 我将确切的字符串作为输入。如何只获取此模式中存在的数字。

def toSeconds(time : String) : String = {
    val pattern = """(\d+) min.""".r
    val pattern2 = """(\d+):(\d+).""".r

    if(pattern.findFirstIn(time) != "None")
    {
        pattern.findFirstIn(time).toString.concat("h") 
    }
    if (pattern2.findFirstIn(time) != "None")
    {
        pattern2.findFirstIn(time).toString.concat("x")
    }
    if (time == ">>") 0.toString
    else time
}

我会这样做:

time match {
  case pattern(m) => s"${m}h"
  case pattern2(h,m) => s"${h}h${m}"
  case ">>" => "0"
  case _ => time
}