Groovyメモ
Groovyでちょいと正規表現を触ってて気づいたところ
バグ?
pat = "\\d{5}"
text1 = "12345"
println "pat is ${pat} matches ${text1} ?"
println text1 ==~ pat // これはtrueになるtext2 = "a12345"
println "pat is ${pat} matches ${text2} ?"
println text2 ==~ pat // これだとfalseになる なんで?text3 = "a1234"
println "pat is ${pat} matches ${text3} ?"
println text3 ==~ pat // これは当然false。
それとも俺の正規表現の理解が間違ってたのかな?と思いRubyで動作を見てみる
動くよな、当然だよな。
$ ruby -e 'if "a12345" =~ /\d{5}/; print "match!\n"; end'
match!
うーん。正規表現の比較演算子の使い方が間違ってるのかな?