gpt4 book ai didi

scala - 如何在 Scala 中执行以下正则表达式匹配?

转载 作者:行者123 更新时间:2023-12-01 10:09:36 24 4
gpt4 key购买 nike

我的代码可能太烂了,我需要用英语解释一下。基本上我已经创建了一个 Date 类,我希望它使用 String 作为构造函数并处理两种情况

  • 格式为“2011-06-30”的字符串
    get() 返回“2011-06-30 00:00:00.000”
  • 格式为“2011-06-30 16:32:19.452”的字符串

  • get() 拆分为 rawDate=2011-06-30 和 rawTime=16:32:19.452 然后打印

    我的尝试如下
    case class Date(date: String) {

    // regex
    val DateAndTime = """rawDate rawTme""".r

    def get(): String = date match {
    case DateTime(rawDate, rawTime) => rawDate + "*" + rawTime
    case _ => date + " 00:00:00.000"
    }
    }

    不幸的是,它甚至无法编译,但我不确定我哪里出错了

    最佳答案

    val dateRegex = """([0-9]{4}-[0-9]{2}-[0-9]{2})"""
    val timeRegex = """([0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3})"""
    val DateOnly = dateRegex.r
    val DateTime = (dateRegex + " " + timeRegex).r
    def get(s:String) = s match {
    case DateTime(d,t) => d + "*" + t
    case DateOnly(d) => d + " 00:00:00.000"
    }

    scala> get("2011-06-30")
    res1: java.lang.String = 2011-06-30 00:00:00.000

    scala> get("2011-06-30 16:32:19.452")
    res2: java.lang.String = 2011-06-30*16:32:19.452

    关于scala - 如何在 Scala 中执行以下正则表达式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6693986/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com