我的冲动是说是的,特别是如果我在多个代码位置使用相同的正则表达式,但this article表示该库将为我缓存编译(我甚至不确定它是如何的会这样做:
通常不需要编译正则表达式模式。模式将在第一次使用时进行编译,并且您的Haskell运行时应该为您记住编译的表示。
答案 0 :(得分:5)
如果重用正则表达式,则值得使用RegexMaker类型类来定义“已编译”的正则表达式。它能够采用其他选项,并能够在您选择的Monad中报告编译失败。
要使用“已编译”表单,您可以使用RegexLike中的'match'或'matchM',它可以提供等同于=〜或==〜运算符。
答案 1 :(得分:5)
GHC(截至7.8.4 / regex-tdfa-1.2.0)不会记忆与(=~)
或(=~~)
匹配的正则表达式。我发现使用具有大量潜在匹配的compile
and execute
可以提高性能。