Safe Haskell | None |
---|
This will fail or error only if allocation fails or a nullPtr is passed in.
- data Regex
- newtype CompOption = CompOption CInt
- newtype ExecOption = ExecOption 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
- type StartOffset = MatchOffset
- type EndOffset = MatchOffset
- newtype ReturnCode = ReturnCode CInt
- type WrapError = (ReturnCode, String)
- wrapCompile :: CompOption -> ExecOption -> CString -> IO (Either (MatchOffset, String) Regex)
- wrapTest :: StartOffset -> Regex -> CStringLen -> IO (Either WrapError Bool)
- wrapMatch :: StartOffset -> Regex -> CStringLen -> IO (Either WrapError (Maybe [(StartOffset, EndOffset)]))
- wrapMatchAll :: Regex -> CStringLen -> IO (Either WrapError [MatchArray])
- wrapCount :: Regex -> CStringLen -> IO (Either WrapError Int)
- getVersion :: Maybe String
- configUTF8 :: Bool
- getNumSubs :: Regex -> Int
- unusedOffset :: MatchOffset
- compBlank :: CompOption
- 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
- execBlank :: ExecOption
- execAnchored :: ExecOption
- execNotBOL :: ExecOption
- execNotEOL :: ExecOption
- execNotEmpty :: ExecOption
- execNoUTF8Check :: ExecOption
- execPartial :: ExecOption
- retOk :: ReturnCode
- retNoMatch :: ReturnCode
- retNull :: ReturnCode
- retBadOption :: ReturnCode
- retBadMagic :: ReturnCode
- retUnknownNode :: ReturnCode
- retNoMemory :: ReturnCode
- retNoSubstring :: ReturnCode
High-level interface
A compiled regular expression
newtype CompOption Source
newtype ExecOption Source
(=~) :: (RegexMaker Regex CompOption ExecOption source, RegexContext Regex source1 target) => source1 -> source -> targetSource
(=~~) :: (RegexMaker Regex CompOption ExecOption source, RegexContext Regex source1 target, Monad m) => source1 -> source -> m targetSource
Low-level interface
type StartOffset = MatchOffsetSource
type EndOffset = MatchOffsetSource
type WrapError = (ReturnCode, String)Source
:: CompOption | Flags (summed together) |
-> ExecOption | Flags (summed together) |
-> CString | The regular expression to compile |
-> IO (Either (MatchOffset, String) Regex) | Returns: an error offset and string or the compiled regular expression |
Compiles a regular expression
:: StartOffset | Starting index in CStringLen |
-> Regex | Compiled regular expression |
-> CStringLen | String to match against and length in bytes |
-> IO (Either WrapError Bool) |
:: StartOffset | Starting index in CStringLen |
-> Regex | Compiled regular expression |
-> CStringLen | String to match against and length in bytes |
-> IO (Either WrapError (Maybe [(StartOffset, EndOffset)])) | Returns: 'Right Nothing' if the regex did not match the string, or: 'Right Just' an array of (offset,length) pairs where index 0 is whole match, and the rest are the captured subexpressions, or: 'Left ReturnCode' if there is some strange error |
Matches a regular expression against a string
Should never return (Right (Just []))
wrapMatchAll :: Regex -> CStringLen -> IO (Either WrapError [MatchArray])Source
wrapMatchAll is an improvement over wrapMatch since it only allocates memory with allocaBytes once at the start.
Miscellaneous
getVersion :: Maybe StringSource
return version of pcre used or Nothing if pcre is not available.
getNumSubs :: Regex -> IntSource