ActionScript 2.0 の正規表現クラス

As2lib正規表現のパッケージ org.as2lib.regexp があった。0.9.3 から入ったのかな。正規表現を使うなら Joey Lott 版の RegExp クラスでもいいんだけど、ソースを見たら String の prototype を書き換えてるしなあ……。

というわけで、As2lib にてメールアドレスの正当性チェックを行ってみた。Pattern インスタンスと Matcher インスタンスを作成し、Matcher.matches で Boolean が返ってくる。グループのマッチ文字列は Matcher.getGroup で得られる。Matcher には置換メソッドもあるけど、使い方がよく解らない……。

import org.as2lib.regexp.*;
var p:Pattern = new Pattern("^([\\w\\d_\\.\\-]+)@([\\w\\d_\\.\\-]+[\\.][\\w]{2,3})$");
var s:String = "hoge_2006@example.com";
var m:Matcher = new Matcher(p, s);
trace(m.matches()); //true
trace(m.getGroup(1)); //hoge_2006
trace(m.getGroup(2)); //example.com

便利!マッチングにかかる時間は Pentium 4 の 1.8GHz で 10ms 前後。長文には向かないだろうけど、フォームの入力チェックくらいには使えそう。