Scala正则表达式和完全匹配模式匹配

时间:2015-06-17 00:42:39

标签: regex scala pattern-matching

这是字符串正则表达式问题。要求是我有一些可配置的模式,然后这个模式将用于验证输入信息。

 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
}

有没有更好的解决方案?

非常感谢提前

0 个答案:

没有答案
相关问题