Skip to the content.

regex

import "regex" as regex

Provides regular expression matching, searching, replacing, and splitting using compiled regular expressions.

regex.Regex(pattern)

Creates a compiled regular expression from a pattern.

let re = regex.Regex("[0-9]+")

term.log(re.match("123"))

Compiled regular expressions can be reused multiple times.

Regex.intern(pattern)

Creates or retrieves a shared compiled regular expression.

Interned regular expressions are cached and reused when the same pattern is requested multiple times.

let a = regex.Regex.intern("[a-z]+")
let b = regex.Regex.intern("[a-z]+")

term.log(a == b)

Interned regular expressions are managed automatically and cannot be manually freed.

Regex.close()

Frees the resources used by a regular expression.

let re = regex.Regex("hello")

re.close()

Calling close() on an interned regular expression raises a RuntimeError.

Regex.match(subject)

Checks whether the regular expression matches the given string.

let re = regex.Regex("^hello")

term.log(re.match("hello world"))

Returns the match result from the regular expression engine.

Regex.find(subject)

Finds the first match in a string.

let re = regex.Regex("[0-9]+")

let result = re.find("abc123def")

term.log(result)

Returns the first matching result, or an empty result if no match is found.

Regex.find_all(subject)

Finds all matches in a string.

let re = regex.Regex("[0-9]+")

let results = re.find_all("abc123def456")

term.log(results)

Returns an array containing every match.

Regex.replace(subject, replacement)

Replaces the first match with the given replacement.

let re = regex.Regex("[0-9]+")

term.log(re.replace("abc123", "x"))

Regex.replace_all(subject, replacement)

Replaces every match with the given replacement.

let re = regex.Regex("[0-9]+")

term.log(re.replace_all("abc123def456", "x"))
# "abcxdefx"

Regex.split(subject)

Splits a string using the regular expression as the delimiter.

let re = regex.Regex(",")

let parts = re.split("one,two,three")

term.log(parts)
# ["one", "two", "three"]

Errors

Invalid regular expression patterns raise RegexError.

regex.Regex("[")
# RegexError

Example

let number = regex.Regex("[0-9]+")

let text = "There are 123 apples and 456 oranges"

term.log(number.find_all(text))
# ["123", "456"]

term.log(number.replace_all(text, "N"))
# "There are N apples and N oranges"

Next