テキストの解析を行う Erlang プログラムを作成していると、正規表現を使用してパターン マッチを実行したい状況によく遭遇します。
たとえば、次のようなことができたらいいのにと思います。ここで、 ~ は「作成された」正規表現一致演算子です。
my_function(String ~ ["^[A-Za-z]+[A-Za-z0-9]*$"]) ->
....
正規表現モジュール (re) については知っていますが、パターン マッチング時やガード中に関数を呼び出すことはできません。
また、大文字と小文字を区別しない方法で文字列の照合を行うことができればと思います。これは便利です。たとえば、HTTP ヘッダーを解析するときに、「Str ~ {Pattern, Options}」が「オプション オプションを使用してパターン パターンに対して Str を一致させる」ことを意味する次のようなことをしたいと思います。
handle_accept_language_header(Header ~ {"Accept-Language", [case_insensitive]}) ->
...
2 つの質問:
通常、標準の Erlang だけを使用してこれをどのように処理しますか? 簡潔さと読みやすさの点で、これに近いメカニズム/コーディングスタイルはありますか?
Erlang でこれに対処するための作業 (EEP?) はありますか?