There are several packages available for the usage of regular expressions in Haskell (e.g. Text.Regex.Base, Text.Regex.Posix etc.). Most packages I’ve seen so far use a subset of Regex I know, by which I mean: I am used to split a sentence into words with the following Regex:
\\w+
Nearly all packages in Haskell I tried so far don’t support this (at least the earlier mentioned and Text.Regex.TDFA neither). I know that with Posix the usage of [[:word:]+] would have the same effect, but I would like to use the variant mentioned above.
From there are two questions:
- Is there any package to archive that?
- If there really is, why is there a different common usage?
- What advantages or disadvantages are there?
The ‘\w’ is a Perl pattern, and supported by PCRE, which you can access in Haskell with my regex-pcre package or the pcre-light library. If your input is a list of Char then the ‘words’ function in the standard Prelude may be enough; if your input is ASCII bytestring then Data.ByteString.Char8 may work. There may be a utf8 library with word splitting, but I cannot quickly find it.