正则表达式:
val FollowRE = """(?i)(?<=follow)(\s+(me|@[A-Za-z\d_]+))+""".r
代码段:
"@foo follow me" match {
case FollowRE() => "baz"
case _ => "foo"
}
但需要"foo"
分支。我可以允许部分正则表达式匹配
所以它需要"baz"
分支?
答案 0 :(得分:0)
匹配必须具有尽可能多的模式变量(或通配符,_
以忽略相应的捕获),因为正则表达式具有捕获组。对于你的RE,这是两个捕获组,虽然我无法进行匹配(我认为RE需要工作)。
<强>附录强>
显然我错过了这一点。你想要一个浮动的比赛。 Scala Regex在其提取器中匹配(在match
构造中使用时得到的)是匹配,而不是 find 。因此,如果您希望它像查找一样,则需要将.*
放在模式的开头和结尾。