【问题标题】:Extract date from String in scala从scala中的字符串中提取日期
【发布时间】:2019-01-29 14:35:57
【问题描述】:

我将此文本作为字符串 "Report Date 2018-05-04 ""Report Run Date"" 2018-05-05"

在上面我想打印2018-05-04。我可以使用substring 方法做到这一点,但这不是正确的方法,需要进行正则表达式模式匹配。

你能告诉我在这种情况下什么正则表达式会起作用。

顺便说一句,我正在使用 Scala

【问题讨论】:

  • 为什么不能只做 str.split(" ")[2]?

标签: regex string scala date pattern-matching


【解决方案1】:

\d{4}-\d{2}-\d{2} 这样的东西就可以了。在 Scala 中:

scala> val testString = """"Report Date 2018-05-04   ""Report Run Date"" 2018-05-05""""
testString: String = "Report Date 2018-05-04   ""Report Run Date"" 2018-05-05"

scala> val pattern = "\\d{4}-\\d{2}-\\d{2}".r  // XXXX-XX-XX where X is a number
pattern: scala.util.matching.Regex = \d{4}-\d{2}-\d{2}

scala> (pattern findAllIn testString).toList
res0: List[String] = List(2018-05-04, 2018-05-05)

如果您想了解有关 Regex 的更多信息,请访问 Regex101 之类的网站。

【讨论】:

  • 顺便说一句,如果你想从字面上匹配2018-05-04,你可以使用正则表达式2018-05-04。这些都不是特殊字符。
猜你喜欢
  • 2017-03-19
  • 1970-01-01
  • 2011-02-17
  • 2016-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多