Haxe で正規表現を使う際には、次のような問題点がある。
- ターゲット環境によって正規表現の細かい文法が違う。
- ターゲット環境によっては、Unicode の code point 単位ではなく、 UTF-16 の code unit 単位で正規表現のマッチングを行うものがある。JavaScript とか JavaScript とか ECMAScript 5 とか
- この場合、
[\uD800-\uDBFF][\uDC00-\uDFFF]
というようなパターンを書くなどして、サロゲートペアを自前で処理しないといけない。
- この場合、
また、Haxe に限らなくても、文字列で正規表現のパターンを記述するのには、次のような問題点がある。
- 複雑な正規表現を文字列の形で直接ソースコードに書くのは、コードの読みやすさ的によろしくない。
- 正規表現の文字列を動的に構築する場合も考えると、いろいろカオスになりそう。
そこで、正規表現のパターン文字列を構築する Haxe のライブラリを作ることを考える。ライブラリ側で環境の違いも吸収することにすれば良い。 続きを読む