Text.Regex

regex-compat-tdfa-0.95.1.4: Unicode Support version of Text.Regex, using regex-tdfa

Copyright | (c) Chris Kuklewicz 2006, (c) shelarcy 2012, derived from (c) The University of Glasgow 2001
License | BSD-style (see the file LICENSE)
Maintainer | libraries@haskell.org
Stability | experimental
Portability | non-portable (regex-base needs MPTC+FD)
Safe Haskell | None
Language | Haskell98

Text.Regex

Contents

- Regular expressions

Description

Regular expression matching. Uses the POSIX regular expression interface in Text.Regex.TDFA.

Synopsis

- data Regex :: *
- mkRegex :: String -> Regex
- mkRegexWithOpts :: String -> Bool -> Bool -> Regex
- matchRegex :: Regex -> String -> Maybe [String]
- matchRegexAll :: Regex -> String -> Maybe (String, String, String, [String])
- subRegex :: Regex -> String -> String -> String
- splitRegex :: Regex -> String -> [String]

# Regular expressions

data Regex :: * #

The TDFA backend specific `Regex` type, used by this module's RegexOptions and RegexMaker

Instances

RegexOptions Regex CompOption ExecOption |
Methods blankCompOpt :: CompOption # blankExecOpt :: ExecOption # defaultCompOpt :: CompOption # defaultExecOpt :: ExecOption # setExecOpts :: ExecOption -> Regex -> Regex # getExecOpts :: Regex -> ExecOption #

mkRegex :: String -> Regex #

Makes a regular expression with the default options (multi-line, case-sensitive). The syntax of regular expressions is otherwise that of `egrep` (i.e. POSIX "extended" regular expressions).

mkRegexWithOpts #

Arguments

:: String | The regular expression to compile
-> Bool | `True` `<=>` `'^'` and `'$'` match the beginning and end of individual lines respectively, and `'.'` does not match the newline character.
-> Bool | `True` `<=>` matching is case-sensitive
-> Regex | Returns: the compiled regular expression

Makes a regular expression, where the multi-line and case-sensitive options can be changed from the default settings.

matchRegex #

Arguments

:: Regex | The regular expression
-> String | The string to match against
-> Maybe [String] | Returns: ``Just` strs` if the match succeeded (and `strs` is the list of subexpression matches), or `Nothing` otherwise.

Match a regular expression against a string

matchRegexAll #

Arguments

:: Regex | The regular expression
-> String | The string to match against
-> Maybe (String, String, String, [String]) | Returns: `Nothing` if the match failed, or:
     Just ( everything before match,
            portion matched,
            everything after the match,
            subexpression matches )

Match a regular expression against a string, returning more information about the match.

subRegex #

Arguments

:: Regex | Search pattern
-> String | Input string
-> String | Replacement text
-> String | Output string

Replaces every occurance of the given regexp with the replacement string.

In the replacement string, `"\1"` refers to the first substring; `"\2"` to the second, etc; and `"\0"` to the entire match. `"\\\\"` will insert a literal backslash.

This does not advance if the regex matches an empty string. This misfeature is here to match the behavior of the the original Text.Regex API.

splitRegex :: Regex -> String -> [String] #

Splits a string based on a regular expression. The regular expression should identify one delimiter.

This does not advance and produces an infinite list of [] if the regex matches an empty string. This misfeature is here to match the behavior of the the original Text.Regex API.