2011-10-17 14 views
4

私は文字列と別の文字列として正規表現を取る関数removeを持っています。これは、正規表現と一致するものを2番目の文字列から削除して返します。現時点で正規表現文字列をHaskellに保存する最良の方法は何ですか?

、私は例えば、リテラル正規表現の文字列でremove関数を呼び出しています:

remove "(my|a)?string" "Test string" -- returns "Test " 

このプログラムは、成長しようとしているとコールする正規表現の、それぞれ1月のたくさんあるだろうプログラム全体で数回使用することができます。

myregex = "(my|a)?string" 

とするか、データ型などを作成する必要がありますか?

おかげ

答えて

5
一つのオプションはでて部分的なアプリケーションを使用することです

removeName = remove "<name_regex>" 
:適用したい正規表現の各特定のタイプについて

remove regex str = <generic code to remove the regex expression from string> 

、あなたのような関数を書くことができます

など。そして、あなたはパフォーマンスが懸念される場合は、複数回使用する予定のregexenが一度にコンパイルし、コンパイルされた形式で格納されるべき

removeName "myname" 
4

のようにこれらの機能を使用することができます。 makeRegexのドキュメントも参照してください。

関連する問題