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

一致には、正規表現がキャプチャ グループを持っているのと同じ数のパターン変数 (または_、対応するキャプチャを無視するためのワイルドカード) が必要です。あなたのREの場合、それは2つのキャプチャグループですが、一致させることはできません(REには作業が必要だと思います)。

補遺

どうやら私はポイントを逃した。フローティングマッチが必要です。matchそのエクストラクターでの Scala Regex マッチング (コンストラクトで使用したときに得られるもの) は、 findではなくmatchです。したがって、検索のように機能させたい場合は、パターンの最初と最後に配置する必要があります。.*

于 2013-03-08T22:14:47.203 に答える