最近の dzone パズラーを実行して、文字列を繰り返し数字と一致させていますが、次のことで混乱しています。
次のパターンが機能することを期待します: /(\d)\1/
演算子 =~ (マッチャーを作成することになっている) を使用すると、これは正しく一致します
if(!("${num}" =~ /(\d)\1/) )
println num
印刷されません。たとえば、77、100、222 などです。
しかし、==~(ブール値に評価されるはず)を使用すると、つまり:
if(!("${num}" ==~ /(\d)\1/) )
println num
次に、55、66 は出力されませんが、100、111 は出力されます。動作させるには、パターンを /\d*(\d)\d\d*/ に変更する必要があります。
私は何を誤解していますか?パターンが =~ では機能するのに ==~ では機能しないのはなぜですか?
任意の洞察をいただければ幸いです。