uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

正規表現の補足

前に書いた記事「Groovyの奇妙な正規表現」に対する補足ですが、
=~, ==~ がパターンに対しても実行可能ですね。
つまり、

"A" =~ /B/
"A" =~ ~/B/   ←
"A" ==~ /B/
"A" ==~ ~/B/

が可能。これによって、以下のように正規表現をあらかじめコンパイルしておいて使えまわせます。

pat = ~/a(.)c/ // プリコンパイルされたパターン
"abc" =~ p
"axc" =~ p

この場合、正規表現コンパイルが2回起きませんので速度が稼げます。

# 暗にキャッシュしてくれればいいのに・・ぼそ