071:正規表現のメタ文字をエスケープする
コード
import java.util.regex.Pattern; assert Pattern.quote("*.txt") == /\Q*.txt\E/ assert Pattern.quote("what?") == /\Qwhat?\E/ assert Pattern.quote("[a-z]") == /\Q[a-z]\E/ assert Pattern.quote("*{a,b}") == /\Q*{a,b}\E/ assert ".." =~ Pattern.quote("..") assert "xx" !=~ Pattern.quote("..") assert ".." =~ /../ assert "xx" =~ /../
へぇー
/\エスケープするとこうなるんだ\E/
添削歓迎
ここ間違ってるよ
こうした方がGroovyらしくないか?
などなど
方法は、コメント、トラックバック、はてブ、Twitter @orange_clover宛 で、お願いします。
実行環境
Groovyの詳細についてはJavadocと以下の書籍を参考にしている。
問題自体は第2版のもの。
自分で考えるために他言語の例をGroovyで置き換えてる。
が、自分だけで書いてるとGroovyっぽくならいないのが玉にキズ。