Scala - 使用可选匹配解析字符串

时间:2014-12-05 09:08:33

标签: scala parsing

我有这种模式:

val smilepattern = "([:]) ([-]) ([) | | | (])".r
val smilepattern(colon, dash, arc) = ": - |" 
println(colon + dash + arc)

我打算检查三个smiles的构建,但我怎么能说dash ([-])是可选的?因为,smile可以是:-):) ???

1 个答案:

答案 0 :(得分:3)

您可以在正则表达式中使用?使其成为可选项。

scala> ":  )".matches("([:]) ([-]?) ([) | | | (])")
res1: Boolean = true

scala> ": - )".matches("([:]) ([-]?) ([) | | | (])")
res2: Boolean = true