使用 Haskell 正则表达式库替换/替代

2024-02-11

Haskell 中是否有用于使用正则表达式进行搜索和替换的高级 API?特别是,我正在看Text.Regex.TDFA or Text.Regex.Posix包。我真的很想要某种类型的东西:

f :: Regex -> (ResultInfo -> m String) -> String -> m String

因此,例如,要将“狗”替换为“猫”,您可以这样写

runIdentity . f "dog" (return . const "cat")    -- :: String -> String

或者用 monad 做更高级的事情,比如计算出现次数等。

这方面的 Haskell 文档非常缺乏。一些低级 API 注释是here http://www.serpentine.com/blog/2007/02/27/a-haskell-regular-expression-tutorial/.


怎么样Text.Regex.subRegex https://hackage.haskell.org/package/regex-compat-0.92/docs/Text-Regex.html包装内regex-compat?

Prelude> import Text.Regex (mkRegex, subRegex)

Prelude> :t mkRegex
mkRegex :: String -> Regex

Prelude> :t subRegex
subRegex :: Regex -> String -> String -> String

Prelude> subRegex (mkRegex "foo") "foobar" "123"
"123bar"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Haskell 正则表达式库替换/替代 的相关文章

随机推荐