我试图使用sbt解析器(http://www.scala-sbt.org/0.13/docs/parsing-input.html)解析sbt InputTask的命令行参数,但未能编写与以下伪regex匹配的解析器:
\w+(-n|--dry-run)\w+
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
您正在以错误的方式检查解析器的正确性。在本例中,您应该使用.resultemtty.isvalid
而不是.result
,就像在这里的测试中一样。然后,您的代码工作正常:
import sbt.complete.Parser
import sbt.complete.DefaultParsers._
val dryRunOptions: Parser[String] = OptSpace ~> ("-n" | "--dry-run") <~ OptSpace
val dryRunParser: Parser[Boolean] = flag(dryRunOptions)
val test = Seq("-n", " -n", "-n ", " -n ",
"--dry-run", " --dry-run", "--dry-run ", " --dry-run ")
test.foldLeft(true)((b:Boolean, input:String) =>
b && Parser(dryRunParser)(input).resultEmpty.isValid)
结果是:
res0: Boolean = true
我正在寻找一个正则表达式,它可以做到这一点:我的文本: 我想提取的是: 有人有主意吗? 我试过:
我正在编写一个php类来从csv文件中提取数据。所以正则表达式需要帮助。 数据样本 正则表达式 这不应该匹配第1、2和7行,因为它在数据和字段后只有空格和制表符(空白) 这是我的regex测试程序链接https://regex101.com/r/xpG25l/1/
我有以下两个日期: 2009年10月8日 我正在使用Jackson将日期从rest api转换为joda Datetime。 我以为模式“dd MMM.yyyy”可以工作,但“may”没有点,所以在那一点上崩溃了。 有没有解决方案,或者我必须自己编写datetime解析器? jackson中的注释是: 所以只允许有一种约会模式。
使用我发现研究如何在字符串的字符之间插入空格的代码(这里),我修改了结果,但这并没有在“你好”和“世界”之间的空格周围插入额外的空格——你能让我知道我错过了什么吗?还有,L%2是做什么的?谢谢!将结果输出到浏览器是很重要的。
我试图检查字符串是否包含完全匹配。例如: String str="这是我的字符串,具有-Policy和-p" 我怎样才能做到以下几点:
我创建了一个简单的RESTendpoint: 我实例化了一个改型: 我的服务: 现在,尝试调用数据: null 但我不知道如何使改型2使用这个。 提前谢了。