4
SBTパーサ(http://www.scala-sbt.org/0.13/docs/Parsing-Input.html)を使用してsbt InputTaskのコマンドライン引数を解析しようとしていますが、次の擬似文字に一致するパーサを書き込めません-regex:オプションの空白で囲まれた文字列をSBTパーサと一致させる方法
\w+(-n|--dry-run)\w+
これは私が考えることができる最も賢明な表現方法です。入力文字列が一致する場合、結果はSome(true)
になります。
import sbt.complete.Parser
import sbt.complete.DefaultParsers._
val dryRunOptions: Parser[String] = OptSpace ~> ("-n" | "--dry-run") <~ OptSpace
val dryRunParser: Parser[Boolean] = flag(dryRunOptions)
Parser(dryRunParser)("-n").result
Parser(dryRunParser)(" -n").result
Parser(dryRunParser)("-n ").result
Parser(dryRunParser)(" -n ").result
Parser(dryRunParser)("--dry-run").result
Parser(dryRunParser)(" --dry-run").result
Parser(dryRunParser)("--dry-run ").result
Parser(dryRunParser)(" --dry-run ").result
残念ながら、これはこれらのケースと一致しません。
res0: Option[Boolean] = None
res1: Option[Boolean] = None
res2: Option[Boolean] = None
res3: Option[Boolean] = None
res4: Option[Boolean] = None
res5: Option[Boolean] = None
res6: Option[Boolean] = None
res7: Option[Boolean] = None
私は、これがこの上のバリエーションのカップルといくつかの例が、決してそれらのすべてを一致させるために得ることができます。どんな助けにも感謝!