0

给定正则表达式:

val FollowRE = """(?i)(?<=follow)(\s+(me|@[A-Za-z\d_]+))+""".r

代码片段:

"@foo follow me" match {
  case FollowRE() => "baz"
  case _ => "foo"
}

但它需要"foo"分支。我可以允许部分正则表达式匹配所以它需要"baz"分支吗?

4

1 回答 1

0

匹配必须具有_与 Regex 具有捕获组一样多的模式变量(或通配符,以忽略相应的捕获)。对于您的 RE,这是两个捕获组,尽管我无法匹配(我认为 RE 需要工作)。

附录

显然我错过了重点。你想要一个浮动匹配。Scala Regex 提取器中的匹配(在构造中使用它时得到的match)是match,而不是find。所以如果你想让它表现得像一个发现,你需要把它放在.*你的模式的开头和结尾。

于 2013-03-08T22:14:47.203 回答