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

Safe HaskellNone
LanguageHaskell98

Text.Regex.PCRE

Contents

Description

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. ByteStrings 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

Documentation

Wrap, for =~ and =~~, types and constants

data Regex Source #

A compiled regular expression

Instances
RegexLike Regex String 
Instance details

Defined in Text.Regex.PCRE.String

Methods

matchOnce :: Regex -> String -> Maybe MatchArray

matchAll :: Regex -> String -> [MatchArray]

matchCount :: Regex -> String -> Int

matchTest :: Regex -> String -> Bool

matchAllText :: Regex -> String -> [MatchText String]

matchOnceText :: Regex -> String -> Maybe (String, MatchText String, String)

RegexLike Regex ByteString 
Instance details

Defined in Text.Regex.PCRE.ByteString.Lazy

Methods

matchOnce :: Regex -> ByteString -> Maybe MatchArray

matchAll :: Regex -> ByteString -> [MatchArray]

matchCount :: Regex -> ByteString -> Int

matchTest :: Regex -> ByteString -> Bool

matchAllText :: Regex -> ByteString -> [MatchText ByteString]

matchOnceText :: Regex -> ByteString -> Maybe (ByteString, MatchText ByteString, ByteString)

RegexLike Regex ByteString 
Instance details

Defined in Text.Regex.PCRE.ByteString

Methods

matchOnce :: Regex -> ByteString -> Maybe MatchArray

matchAll :: Regex -> ByteString -> [MatchArray]

matchCount :: Regex -> ByteString -> Int

matchTest :: Regex -> ByteString -> Bool

matchAllText :: Regex -> ByteString -> [MatchText ByteString]

matchOnceText :: Regex -> ByteString -> Maybe (ByteString, MatchText ByteString, ByteString)

RegexContext Regex String String 
Instance details

Defined in Text.Regex.PCRE.String

Methods

match :: Regex -> String -> String

matchM :: Monad m => Regex -> String -> m String

RegexContext Regex ByteString ByteString 
Instance details

Defined in Text.Regex.PCRE.ByteString.Lazy

Methods

match :: Regex -> ByteString -> ByteString

matchM :: Monad m => Regex -> ByteString -> m ByteString

RegexContext Regex ByteString ByteString 
Instance details

Defined in Text.Regex.PCRE.ByteString

Methods

match :: Regex -> ByteString -> ByteString

matchM :: Monad m => Regex -> ByteString -> m ByteString

RegexOptions Regex CompOption ExecOption Source # 
Instance details

Defined in Text.Regex.PCRE.Wrap

RegexMaker Regex CompOption ExecOption String 
Instance details

Defined in Text.Regex.PCRE.String

Methods

makeRegex :: String -> Regex

makeRegexOpts :: CompOption -> ExecOption -> String -> Regex

makeRegexM :: Monad m => String -> m Regex

makeRegexOptsM :: Monad m => CompOption -> ExecOption -> String -> m Regex

RegexMaker Regex CompOption ExecOption ByteString 
Instance details

Defined in Text.Regex.PCRE.ByteString.Lazy

Methods

makeRegex :: ByteString -> Regex

makeRegexOpts :: CompOption -> ExecOption -> ByteString -> Regex

makeRegexM :: Monad m => ByteString -> m Regex

makeRegexOptsM :: Monad m => CompOption -> ExecOption -> ByteString -> m Regex

RegexMaker Regex CompOption ExecOption ByteString 
Instance details

Defined in Text.Regex.PCRE.ByteString

Methods

makeRegex :: ByteString -> Regex

makeRegexOpts :: CompOption -> ExecOption -> ByteString -> Regex

makeRegexM :: Monad m => ByteString -> m Regex

makeRegexOptsM :: Monad m => CompOption -> ExecOption -> ByteString -> m Regex

RegexMaker Regex CompOption ExecOption (Seq Char) 
Instance details

Defined in Text.Regex.PCRE.Sequence

Methods

makeRegex :: Seq Char -> Regex

makeRegexOpts :: CompOption -> ExecOption -> Seq Char -> Regex

makeRegexM :: Monad m => Seq Char -> m Regex

makeRegexOptsM :: Monad m => CompOption -> ExecOption -> Seq Char -> m Regex

RegexLike Regex (Seq Char) 
Instance details

Defined in Text.Regex.PCRE.Sequence

Methods

matchOnce :: Regex -> Seq Char -> Maybe MatchArray

matchAll :: Regex -> Seq Char -> [MatchArray]

matchCount :: Regex -> Seq Char -> Int

matchTest :: Regex -> Seq Char -> Bool

matchAllText :: Regex -> Seq Char -> [MatchText (Seq Char)]

matchOnceText :: Regex -> Seq Char -> Maybe (Seq Char, MatchText (Seq Char), Seq Char)

RegexContext Regex (Seq Char) (Seq Char) 
Instance details

Defined in Text.Regex.PCRE.Sequence

Methods

match :: Regex -> Seq Char -> Seq Char

matchM :: Monad m => Regex -> Seq Char -> m (Seq Char)

newtype ExecOption Source #

Constructors

ExecOption CInt 
Instances
Eq ExecOption Source # 
Instance details

Defined in Text.Regex.PCRE.Wrap

Methods

(==) :: ExecOption -> ExecOption -> Bool

(/=) :: ExecOption -> ExecOption -> Bool

Num ExecOption Source # 
Instance details

Defined in Text.Regex.PCRE.Wrap

Show ExecOption Source # 
Instance details

Defined in Text.Regex.PCRE.Wrap

Methods

showsPrec :: Int -> ExecOption -> ShowS

show :: ExecOption -> String

showList :: [ExecOption] -> ShowS

Bits ExecOption Source # 
Instance details

Defined in Text.Regex.PCRE.Wrap

RegexOptions Regex CompOption ExecOption Source # 
Instance details

Defined in Text.Regex.PCRE.Wrap

RegexMaker Regex CompOption ExecOption String 
Instance details

Defined in Text.Regex.PCRE.String

Methods

makeRegex :: String -> Regex

makeRegexOpts :: CompOption -> ExecOption -> String -> Regex

makeRegexM :: Monad m => String -> m Regex

makeRegexOptsM :: Monad m => CompOption -> ExecOption -> String -> m Regex

RegexMaker Regex CompOption ExecOption ByteString 
Instance details

Defined in Text.Regex.PCRE.ByteString.Lazy

Methods

makeRegex :: ByteString -> Regex

makeRegexOpts :: CompOption -> ExecOption -> ByteString -> Regex

makeRegexM :: Monad m => ByteString -> m Regex

makeRegexOptsM :: Monad m => CompOption -> ExecOption -> ByteString -> m Regex

RegexMaker Regex CompOption ExecOption ByteString 
Instance details

Defined in Text.Regex.PCRE.ByteString

Methods

makeRegex :: ByteString -> Regex

makeRegexOpts :: CompOption -> ExecOption -> ByteString -> Regex

makeRegexM :: Monad m => ByteString -> m Regex

makeRegexOptsM :: Monad m => CompOption -> ExecOption -> ByteString -> m Regex

RegexMaker Regex CompOption ExecOption (Seq Char) 
Instance details

Defined in Text.Regex.PCRE.Sequence

Methods

makeRegex :: Seq Char -> Regex

makeRegexOpts :: CompOption -> ExecOption -> Seq Char -> Regex

makeRegexM :: Monad m => Seq Char -> m Regex

makeRegexOptsM :: Monad m => CompOption -> ExecOption -> Seq Char -> m Regex

newtype CompOption Source #

Constructors

CompOption CInt 
Instances
Eq CompOption Source # 
Instance details

Defined in Text.Regex.PCRE.Wrap

Methods

(==) :: CompOption -> CompOption -> Bool

(/=) :: CompOption -> CompOption -> Bool

Num CompOption Source # 
Instance details

Defined in Text.Regex.PCRE.Wrap

Show CompOption Source # 
Instance details

Defined in Text.Regex.PCRE.Wrap

Methods

showsPrec :: Int -> CompOption -> ShowS

show :: CompOption -> String

showList :: [CompOption] -> ShowS

Bits CompOption Source # 
Instance details

Defined in Text.Regex.PCRE.Wrap

RegexOptions Regex CompOption ExecOption Source # 
Instance details

Defined in Text.Regex.PCRE.Wrap

RegexMaker Regex CompOption ExecOption String 
Instance details

Defined in Text.Regex.PCRE.String

Methods

makeRegex :: String -> Regex

makeRegexOpts :: CompOption -> ExecOption -> String -> Regex

makeRegexM :: Monad m => String -> m Regex

makeRegexOptsM :: Monad m => CompOption -> ExecOption -> String -> m Regex

RegexMaker Regex CompOption ExecOption ByteString 
Instance details

Defined in Text.Regex.PCRE.ByteString.Lazy

Methods

makeRegex :: ByteString -> Regex

makeRegexOpts :: CompOption -> ExecOption -> ByteString -> Regex

makeRegexM :: Monad m => ByteString -> m Regex

makeRegexOptsM :: Monad m => CompOption -> ExecOption -> ByteString -> m Regex

RegexMaker Regex CompOption ExecOption ByteString 
Instance details

Defined in Text.Regex.PCRE.ByteString

Methods

makeRegex :: ByteString -> Regex

makeRegexOpts :: CompOption -> ExecOption -> ByteString -> Regex

makeRegexM :: Monad m => ByteString -> m Regex

makeRegexOptsM :: Monad m => CompOption -> ExecOption -> ByteString -> m Regex

RegexMaker Regex CompOption ExecOption (Seq Char) 
Instance details

Defined in Text.Regex.PCRE.Sequence

Methods

makeRegex :: Seq Char -> Regex

makeRegexOpts :: CompOption -> ExecOption -> Seq Char -> Regex

makeRegexM :: Monad m => Seq Char -> m Regex

makeRegexOptsM :: Monad m => CompOption -> ExecOption -> Seq Char -> m Regex

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

getVersion :: Maybe String Source #

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