documentation упоминает три специальных оператора с регулярным выражением:
-
~
возвращаетPattern
-
=~
сохранениеMatcher
-
==~
возвращаетboolean
Теперь, как я могу отменить последний? (Я согласен, что другие не могут иметь никакого значимого отрицания.)
Я пробовал очевидное мышление:
println 'ab' ==~ /^a.*/ // true: yay, matches, let change the input
println 'bb' ==~ /^a.*/ // false: of course it doesn't match, let negate the operator
println 'bb' !=~ /^a.*/ // true: yay, doesn't match, let change the input again
println 'ab' !=~ /^a.*/ // true: ... ???
Я думаю, что последние два следует интерпретировать следующим образом:
println 'abc' != ~/^b.*/
где я вижу new String("abc") != new Pattern("^b.*")
true
.