簡體   English   中英

日期字符串在Scala中不匹配

[英]Date String not matching in Scala

我使用來定義一個函數,如果字符串匹配模式,則返回0,否則返回0:

def verif (s:String): Int = {
 val p = """[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9].[0-9]{9}""".r
 s match {
 case p(item) => 0  
 case _ => 1
 }
}

當我執行:

verif("2019-07-01 00:00:00.000000000") // Returns 1

我在多個在線測試器( 這里這里 )驗證了我的正則表達式,它正在工作。

您定義了3個捕獲組,因此必須模式匹配三個組。 但是,僅使用非捕獲組和代碼是有意義的:

def verif (s:String): Int = {
  val p = """[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1]) (?:2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]\.[0-9]{9}""".r
  s match {
    case p() => 0  
    case _ => 1
  }
}
println(verif("2019-07-01 00:00:00.000000000"))   // => 0

請參閱Scala演示

請注意,您還需要轉義點以匹配文字點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM