Per quanto posso vedere dai documenti, i gruppi non di acquisizione sono definiti da (:?), Come in Java. (Credo che sia la stessa libreria sottostante).È possibile eseguire gruppi di non cattura in scala regexes quando il pattern corrisponde a
Tuttavia, questo non sembra funzionare:
var R = "a(:?b)c".r
R.findFirstMatchIn("abc").get.group(1)
restituisce "b" (quando dovrebbe essere vuoto). Ho il sospetto che questo non è normalmente un problema, ma quando si fa il pattern matching, vuol dire che non posso fare ora:
"abc" match {case R => println("ok");case _ => println("not ok")}
> not ok
che devo fare:
"abc" match {case R(x) => println("ok");case _ => println("not ok")}
> ok
non v'è alcun modo per rendere questo lavoro "come previsto"?
È grandioso: adoro lo stile _ *. (usare var e far cadere i paren erano errori nel fare un esempio canonico. –