Solución:
En groovy, el ==~
El operador (también conocido como el operador de “coincidencia”) se utiliza para la coincidencia de expresiones regulares. !=
es simplemente un antiguo “no es igual”. Entonces estos son muy diferentes.
cf. http://groovy-lang.org/operators.html
En Java, !=
es “no igual a” y ~
es “NO bit a bit”. En realidad estarías haciendo variable == ~6
.
En Groovy, el ==~
el operador es “Coincidencia de expresiones regulares”. Ejemplos serían:
-
"1234" ==~ /d+/
-> evalúa atrue
-
"nonumbers" ==~ /d+/
-> evalúa afalse
En Groovy también tienes que tener en cuenta que además de ==~
, alias “Operador de coincidencia”, también hay =~
, alias “Buscar operador” y ~
, alias “Operador de patrón”.
Todos se explican aquí.
==~
tipo de resultado: Boolean
/boolean
(¡No hay primitivos en Groovy, no todo es lo que parece!)
=~
tipo de resultado: java.util.regex.Matcher
~
tipo de resultado: java.util.regex.Pattern
Supongo que el intérprete / compilador de Groovy puede distinguir entre ~
utilizado como operador de patrón y ~
utilizado como bit a bit NO (es decir, su uso en Java) a través del contexto: el primero siempre será seguido por un patrón, que siempre estará entre corchetes entre delimitadores, generalmente /
.