如何解决如何使haskell函数返回特定正则表达式的所有匹配项?
我发现我可以在下面用字符串文字做类似的事情
import Text.Regex.TDFA
import Text.Regex.TDFA ()
let x = ("foo" =~ ("o" :: String)) :: [[String]]
但是我根本无法找到一种类似的方法
getMatches input = (input =~ "o") :: [[String]]
它给了我类似的东西
Non type-variable argument in the constraint: RegexContext Text.Regex.TDFA.Text.Regex source1 [[String]]
我已经搜索了很长一段时间,找不到任何能给我想要的确切类型签名的东西。
有人知道有没有办法做到这一点?
解决方法
如果您想要一种简单的方法来制作可返回特定文本模式的所有匹配项的Haskell函数,则可以使用“try this instead”的正则表达式。
使用https://hackage.haskell.org/package/replace-megaparsec/docs/Replace-Megaparsec.html#v:splitCap
import Text.Megaparsec (chunk)
import Replace.Megaparsec (splitCap)
import Data.Either (rights)
rights $ splitCap (chunk "o") "foo"
["o","o"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。