Module regex_automata::meta
source · Expand description
Provides a regex matcher that composes several other regex matchers automatically.
This module is home to a meta Regex, which provides a convenient high
level API for executing regular expressions in linear time.
Comparison with the regex crate
A meta Regex is the implementation used directly by the regex crate.
Indeed, the regex crate API is essentially just a light wrapper over a meta
Regex. This means that if you need the full flexibility offered by this
API, then you should be able to switch to using this API directly without
any changes in match semantics or syntax. However, there are some API level
differences:
- The
regexcrate API returns match objects that include references to the haystack itself, which in turn makes it easy to access the matching strings without having to slice the haystack yourself. In contrast, a metaRegexreturns match objects that only have offsets in them. - At time of writing, a meta
Regexdoesn’t have some of the convenience routines that theregexcrate has, such as replacements. Note though thatCaptures::interpolate_stringwill handle the replacement string interpolation for you. - A meta
Regexsupports theInputabstraction, which provides a way to configure a search in more ways than is supported by theregexcrate. For example,Input::anchoredcan be used to run an anchored search, regardless of whether the pattern is itself anchored with a^. - A meta
Regexsupports multi-pattern searching everywhere. Indeed, everyMatchreturned by the search APIs include aPatternIDindicating which pattern matched. In the single pattern case, all matches correspond toPatternID::ZERO. In contrast, theregexcrate has distinctRegexand aRegexSetAPIs. The former only supports a single pattern, while the latter supports multiple patterns but cannot report the offsets of a match. - A meta
Regexprovides the explicit capability of bypassing its internal memory pool for automatically acquiring mutable scratch space required by its internal regex engines. Namely, aCachecan be explicitly provided to lower level routines such asRegex::search_with.
Structs
- An error that occurs when construction of a
Regexfails. - A builder for configuring and constructing a
Regex. - Represents mutable scratch space used by regex engines during a search.
- An iterator over all non-overlapping leftmost matches with their capturing groups.
- An object describing the configuration of a
Regex. - An iterator over all non-overlapping matches.
- A regex matcher that works by composing several other regex matchers automatically.
- Yields all substrings delimited by a regular expression match.
- Yields at most
Nspans delimited by a regular expression match.