这是字符串正则表达式问题。要求是我有一些可配置的模式,然后这个模式将用于验证输入信息。
val regex = pattern.r
message match {
case regex() => true //this will use exact match
case regex(t) => true //this will use regex match
case _ => false
}
关于regex()和regex(t)的实现非常相似。我真的想尝试统一它。但我使用它的原因是空括号用于精确匹配,带括号的别名用于正则表达式匹配。
val pattern = "123(.*)".r
val exactMatch = "123".r
val t = "123"
val r = "123123123"
t match {
case pattern(r) => println("regex match") //true
case pattern() => println("exact match")
}
r match {
case pattern(r) => println("regex match") //true
case pattern() => println("exact match")
}
t match {
case exactMatch(r) => println("regex match")
case exactMatch() => println("exact match") //true
}
r match {
case exactMatch(r) => println("regex match")
case exactMatch() => println("exact match")
case _ => //true
}
有没有更好的解决方案?
非常感谢提前