Safe Haskell | None |
---|---|
Language | Haskell98 |
The Text.Regex.PCRE module provides a backend for regular expressions. If you import this along with other backends, then you should do so with qualified imports, perhaps renamed for convenience.
You will need to have libpcre, from www.pcre.org, to use this module. The haskell must be compiled with -DHAVE_PCRE_H and linked with pcre. This is the default in the cabal file.
If you do not compile with HAVE_PCRE_H then the functions will still
exist, but using them will create a run time error. You can test for
the existance of PCRE by checking getVersion
which is Nothing
if
not compiled with PCRE or Just
String
if PCRE is present.
Using the provided CompOption
and ExecOption
values and if
configUTF8
is True, then you might be able to send UTF8 encoded
ByteStrings to PCRE and get sensible results. This is currently
untested.
The regular expression can be provided as a ByteString
, but it will
be copied and a NUL byte appended to make a CString
unless such a
byte is already present. Thus the regular expression cannot contain
an explicit NUL byte. The search string is passed as a CStringLen
and may contain NUL bytes and does not need to end in a NUL
byte. ByteString
s are searched in place (via unsafeUseAsCStringLen).
A String
will be converted into a CString
or CStringLen
for
processing. Doing this repeatedly will be very inefficient.
The Text.Regex.PCRE.String, Text.Regex.PCRE.ByteString, and Text.Regex.PCRE.Wrap modules provides both the high level interface exported by this module and medium- and low-level interfaces that returns error using Either structures.
Synopsis
- getVersion_Text_Regex_PCRE :: Version
- module Text.Regex.Base
- data Regex
- newtype ExecOption = ExecOption CInt
- newtype CompOption = CompOption CInt
- (=~) :: (RegexMaker Regex CompOption ExecOption source, RegexContext Regex source1 target) => source1 -> source -> target
- (=~~) :: (RegexMaker Regex CompOption ExecOption source, RegexContext Regex source1 target, Monad m) => source1 -> source -> m target
- compBlank :: CompOption
- execBlank :: ExecOption
- unusedOffset :: MatchOffset
- getNumSubs :: Regex -> Int
- getVersion :: Maybe String
- configUTF8 :: Bool
- compAnchored :: CompOption
- compAutoCallout :: CompOption
- compCaseless :: CompOption
- compDollarEndOnly :: CompOption
- compDotAll :: CompOption
- compExtended :: CompOption
- compExtra :: CompOption
- compFirstLine :: CompOption
- compMultiline :: CompOption
- compNoAutoCapture :: CompOption
- compUngreedy :: CompOption
- compUTF8 :: CompOption
- compNoUTF8Check :: CompOption
- execAnchored :: ExecOption
- execNotBOL :: ExecOption
- execNotEOL :: ExecOption
- execNotEmpty :: ExecOption
- execNoUTF8Check :: ExecOption
- execPartial :: ExecOption
Documentation
module Text.Regex.Base
Wrap, for =~
and =~~
, types and constants
A compiled regular expression
Instances
newtype ExecOption Source #
Instances
newtype CompOption Source #
Instances
(=~) :: (RegexMaker Regex CompOption ExecOption source, RegexContext Regex source1 target) => source1 -> source -> target Source #
(=~~) :: (RegexMaker Regex CompOption ExecOption source, RegexContext Regex source1 target, Monad m) => source1 -> source -> m target Source #
getNumSubs :: Regex -> Int Source #
getVersion :: Maybe String Source #
return version of pcre used or Nothing if pcre is not available.
configUTF8 :: Bool Source #