我想匹配在斯卡拉2.8(測試版1)用下面的代碼選項組:斯卡拉:匹配的可選正則表達式組
import scala.xml._
val StatementPattern = """([\w\.]+)\s*:\s*([+-])?(\d+)""".r
def buildProperty(input: String): Node = input match {
case StatementPattern(name, value) => <propertyWithoutSign />
case StatementPattern(name, sign, value) => <propertyWithSign />
}
val withSign = "property.name: +10"
val withoutSign = "property.name: 10"
buildProperty(withSign) // <propertyWithSign></propertyWithSign>
buildProperty(withoutSign) // <propertyWithSign></propertyWithSign>
但是,這是行不通的。匹配可選正則表達式組的正確方法是什麼?
Scala在Regex.unapplySeq中使用Matcher.group方法。這指定如果某個組未能匹配部分序列,則返回null - –
2010-03-17 12:25:15
這將是很好,如果斯卡拉可以使用一個可選的正則表達式字段選項類,而不是要求空檢查。 – 2014-11-07 11:24:16