完全に一発ネタ。
IRCにPC常駐のPerl製IRCボット(filiaをUTF8対応し自作プラグインを追加したもの)をおいているのであるが、定番の応答「ぬるぽ」→「ガッ」を実装したいと思った。
まあふつーにやるならqr/ぬるぽ/ => 'ガッ'
みたいな反応でいいのだろうが、そこのチャンネルの某まりもさんがやれ「塗る歩」だ「ぬるほ゜」だ入力するもんだから、こっちも意地になった。絶対に判定してやる!と……。
相手は文字コード変換専門のソフトも作っているような手強い敵なので、Unicode固有文字なんかも容赦なく繰り出してくる。
それらも全て捕捉する完璧なガッを成功させるために僕は絶え間ない努力を繰り返した。
そして、いま、此処に完成した正規表現がこれだ!!
qr/(?:[塗濡墐温]|(?:[ぬめススヌヌ塗濡墐温]|[NnNn].*[UuUuうぅウゥウゥ]).*(?:[るルル留流琉瑠婁屡櫳漊屢熮畱靇]|[ノノ][レレ]|[RrRrLlLl].*[UuUuうぅウゥウゥ]|[LlLl]+)).*(?:[ぽポ補歩穂帆保捕舗甫浦誧火鋪圃畝葡輔蒲掘彫佈晡步颿蜅畒潽尃㝬莆簠]|[ほホホ][゜゚]|[PpPp].*[OoOoおぉオォオォ])/ => 'ガッ!'
読みはATOK2008基準です。
花園明朝とかを入れてそれで表示するとたぶん欠けの文字はなくなります。
こういうコードに著作権とかあるのか知らないけど、あったとしても主張するのが心底バカバカしいのでてきとうに使ってください。
Edited by Narazaka 2011/02/13