1

我的正则表达式提取器有问题,这是我的正则表达式

val regex = """(some\/params\/results\/\b[A-Z]{3}\/[A-Z]{3}\b\/)*""".r

当我尝试这样做时:

val regex(res) = "some/params/results/XXX/YYY/2016-05-09/2016-05-18/1/0/0"

我得到一个:

some/params/results/XXX/YYY/2016-05-09/2016-05-18/1/0/0 (of class java.lang.String)
scala.MatchError: some/params/results/XXX/YYY/2016-05-09/2016-05-18/1/0/0 (of class java.lang.String)

我想在这样的模式匹配中使用它:

url match {
  case regex(res) => res
  case _ => url
}

提取组some/params/results/XXX/YYY/

4

1 回答 1

1

.在之前添加倒数第二个元素点*

解释:

(...)*- 末尾的星号表示:括号中的内容匹配零个或多个。

(...).*- 末尾的星号表示:零个或多个匹配.,其中.是任何单个字符。

于 2016-05-09T15:05:16.853 回答