regex-compat-0.92: Replaces/Enhances Text.Regex

Portabilitynon-portable (regex-base needs MPTC+FD)
Stabilityexperimental
Maintainerlibraries@haskell.org

Text.Regex

Contents

Description

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

Synopsis

Regular expressions

mkRegex :: String -> RegexSource

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

mkRegexWithOptsSource

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.

matchRegexSource

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

matchRegexAllSource

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.

subRegexSource

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]Source

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.