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と以下の書籍を参考にしている。




関谷 和愛、上原 潤二、須江 信洋、中野 靖治
価格: ¥ 3,360
価格は記載時点のものです。購入前にAmazonでご確認ください。

「プログラミングGROOVY」正誤表




問題自体は第2版のもの。
自分で考えるために他言語の例をGroovyで置き換えてる。
が、自分だけで書いてるとGroovyっぽくならいないのが玉にキズ。




青木 峰郎、後藤 裕蔵、高橋 征義、まつもと ゆきひろ

価格: ¥ 2,940
価格は記載時点のものです。購入前にAmazonでご確認ください。