私はこれらのようないくつかの文字列を持っています:
name[arg,arg,arg]
name[arg,arg]
name[arg]
name
私はそれをscalaコンビネーターパーサーで解析したかったのですが、これは私が何とか得た最高のものです:
object TaskDepParser extends JavaTokenParsers {
def name: Parser[String] = "[^\\[\\],]+".r
def expr: Parser[(String, Option[List[String]])] =
name ^^ { a => (a, None) } |
name ~ "[" ~ repsep(name, ",") ~ "]" ^^ { case name~_~args~_ => (name, Some(args)) }
}
で動作しname
ますが、動作しませんname[arg]
- string matching regex
\ z'が期待されていると言いますが、[' found
。それを修正することは可能ですか?