Module

Data.String.Regex

Package
purescript-strings
Repository
purescript/purescript-strings

Wraps Javascript's RegExp object that enables matching strings with patterns defined by regular expressions. For details of the underlying implementation, see RegExp Reference at MDN.

#Regex Source

data Regex

Wraps Javascript RegExp objects.

Instances

#regex Source

regex :: String -> RegexFlags -> Either String Regex

Constructs a Regex from a pattern string and flags. Fails with Left error if the pattern contains a syntax error.

#source Source

source :: Regex -> String

Returns the pattern string used to construct the given Regex.

#flags Source

flags :: Regex -> RegexFlags

Returns the RegexFlags used to construct the given Regex.

#renderFlags Source

renderFlags :: RegexFlags -> String

Returns the string representation of the given RegexFlags.

#parseFlags Source

parseFlags :: String -> RegexFlags

Parses the string representation of RegexFlags.

#test Source

test :: Regex -> String -> Boolean

Returns true if the Regex matches the string. In contrast to RegExp.prototype.test() in JavaScript, test does not affect the lastIndex property of the Regex.

#match Source

match :: Regex -> String -> Maybe (NonEmptyArray (Maybe String))

Matches the string against the Regex and returns an array of matches if there were any. Each match has type Maybe String, where Nothing represents an unmatched optional capturing group. See reference.

#replace Source

replace :: Regex -> String -> String -> String

Replaces occurrences of the Regex with the first string. The replacement string can include special replacement patterns escaped with "$". See reference.

#replace' Source

replace' :: Regex -> (String -> Array (Maybe String) -> String) -> String -> String

Transforms occurrences of the Regex using a function of the matched substring and a list of captured substrings of type Maybe String, where Nothing represents an unmatched optional capturing group. See the reference.

#search Source

search :: Regex -> String -> Maybe Int

Returns Just the index of the first match of the Regex in the string, or Nothing if there is no match.

#split Source

split :: Regex -> String -> Array String

Split the string into an array of substrings along occurrences of the Regex.