regex-pcre-0.94.4: Replaces/Enhances Text.Regex

Safe HaskellNone

Text.Regex.PCRE.Wrap

Contents

Description

This will fail or error only if allocation fails or a nullPtr is passed in.

Synopsis

High-level interface

data Regex

A compiled regular expression

Instances

RegexLike Regex String 
RegexLike Regex ByteString 
RegexLike Regex ByteString 
RegexOptions Regex CompOption ExecOption 
RegexContext Regex String String 
RegexContext Regex ByteString ByteString 
RegexContext Regex ByteString ByteString 
RegexMaker Regex CompOption ExecOption String 
RegexMaker Regex CompOption ExecOption ByteString 
RegexMaker Regex CompOption ExecOption ByteString 
RegexMaker Regex CompOption ExecOption (Seq Char) 
RegexLike Regex (Seq Char) 
RegexContext Regex (Seq Char) (Seq Char) 

(=~) :: (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

Low-level interface

newtype ReturnCode

Constructors

ReturnCode CInt 

Instances

type WrapError = (ReturnCode, String)

wrapCompile

Arguments

:: 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

wrapTest

Arguments

:: StartOffset

Starting index in CStringLen

-> Regex

Compiled regular expression

-> CStringLen

String to match against and length in bytes

-> IO (Either WrapError Bool) 

wrapMatch

Arguments

:: 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])

wrapMatchAll is an improvement over wrapMatch since it only allocates memory with allocaBytes once at the start.

wrapCount :: Regex -> CStringLen -> IO (Either WrapError Int)

Miscellaneous

getVersion :: Maybe String

return version of pcre used or Nothing if pcre is not available.

configUTF8 :: Bool

getNumSubs :: Regex -> Int

CompOption values

ExecOption values

ReturnCode values