操作系统:MacOSX 10.7.1来自brew的GHC和Haskell平台.
GHCi, version 7.0.4: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude> :m +Text.Regex.Posix
Prelude Text.Regex.Posix> "foo" =~ "o" :: [String]
<interactive>:1:7:
No instance for (RegexContext Regex [Char] [String])
arising from a use of `=~'
Possible fix:
add an instance declaration for
(RegexContext Regex [Char] [String])
In the expression: "foo" =~ "o" :: [String] …Run Code Online (Sandbox Code Playgroud) 我试图匹配正则表达式的所有出现,并得到索引作为结果.Real World Haskell的例子说我能做到
string =~ regex :: [(Int, Int)]
Run Code Online (Sandbox Code Playgroud)
但是,由于自RWH发布以来正在更新正则表达式库,因此这已被破坏.(参见Haskell中所有正则表达式的匹配和"=〜"引发"没有实例(RegexContext Regex [Char] [String])").这样做的正确方法是什么?
更新:
我发现matchAll可能会给我我想要的东西.但我不知道如何使用它.