edlang/regex_automata/meta/index.html
2024-05-05 09:43:20 +00:00

42 lines
9.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Provides a regex matcher that composes several other regex matchers automatically."><title>regex_automata::meta - Rust</title><script> if (window.location.protocol !== "file:") document.write(`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2">`)</script><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-e935ef01ae1c1829.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="regex_automata" data-themes="" data-resource-suffix="" data-rustdoc-version="1.78.0 (9b00956e5 2024-04-29)" data-channel="1.78.0" data-search-js="search-42d8da7a6b9792c2.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-4c98445ec4002617.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-12cf3b4f4f9dc36d.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-04d5337699b92874.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../regex_automata/index.html">regex_automata</a><span class="version">0.4.6</span></h2></div><h2 class="location"><a href="#">Module meta</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li></ul></section><h2><a href="../index.html">In crate regex_automata</a></h2></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../../regex_automata/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Module <a href="../index.html">regex_automata</a>::<wbr><a class="mod" href="#">meta</a><button id="copy-path" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../../src/regex_automata/meta/mod.rs.html#1-62">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Provides a regex matcher that composes several other regex matchers
automatically.</p>
<p>This module is home to a meta <a href="struct.Regex.html" title="struct regex_automata::meta::Regex"><code>Regex</code></a>, which provides a convenient high
level API for executing regular expressions in linear time.</p>
<h2 id="comparison-with-the-regex-crate"><a class="doc-anchor" href="#comparison-with-the-regex-crate">§</a>Comparison with the <code>regex</code> crate</h2>
<p>A meta <code>Regex</code> is the implementation used directly by the <code>regex</code> crate.
Indeed, the <code>regex</code> crate API is essentially just a light wrapper over a meta
<code>Regex</code>. 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:</p>
<ul>
<li>The <code>regex</code> crate 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 meta <code>Regex</code>
returns match objects that only have offsets in them.</li>
<li>At time of writing, a meta <code>Regex</code> doesnt have some of the convenience
routines that the <code>regex</code> crate has, such as replacements. Note though that
<a href="../util/captures/struct.Captures.html#method.interpolate_string" title="method regex_automata::util::captures::Captures::interpolate_string"><code>Captures::interpolate_string</code></a>
will handle the replacement string interpolation for you.</li>
<li>A meta <code>Regex</code> supports the <a href="../struct.Input.html" title="struct regex_automata::Input"><code>Input</code></a> abstraction, which
provides a way to configure a search in more ways than is supported by the
<code>regex</code> crate. For example, <a href="../struct.Input.html#method.anchored" title="method regex_automata::Input::anchored"><code>Input::anchored</code></a> can
be used to run an anchored search, regardless of whether the pattern is itself
anchored with a <code>^</code>.</li>
<li>A meta <code>Regex</code> supports multi-pattern searching everywhere.
Indeed, every <a href="../struct.Match.html" title="struct regex_automata::Match"><code>Match</code></a> returned by the search APIs
include a <a href="../struct.PatternID.html" title="struct regex_automata::PatternID"><code>PatternID</code></a> indicating which pattern
matched. In the single pattern case, all matches correspond to
<a href="../struct.PatternID.html#associatedconstant.ZERO" title="associated constant regex_automata::PatternID::ZERO"><code>PatternID::ZERO</code></a>. In contrast, the <code>regex</code> crate
has distinct <code>Regex</code> and a <code>RegexSet</code> APIs. The former only supports a single
pattern, while the latter supports multiple patterns but cannot report the
offsets of a match.</li>
<li>A meta <code>Regex</code> provides the explicit capability of bypassing its internal
memory pool for automatically acquiring mutable scratch space required by its
internal regex engines. Namely, a <a href="struct.Cache.html" title="struct regex_automata::meta::Cache"><code>Cache</code></a> can be explicitly provided to lower
level routines such as <a href="struct.Regex.html#method.search_with" title="method regex_automata::meta::Regex::search_with"><code>Regex::search_with</code></a>.</li>
</ul>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.BuildError.html" title="struct regex_automata::meta::BuildError">BuildError</a></div><div class="desc docblock-short">An error that occurs when construction of a <code>Regex</code> fails.</div></li><li><div class="item-name"><a class="struct" href="struct.Builder.html" title="struct regex_automata::meta::Builder">Builder</a></div><div class="desc docblock-short">A builder for configuring and constructing a <code>Regex</code>.</div></li><li><div class="item-name"><a class="struct" href="struct.Cache.html" title="struct regex_automata::meta::Cache">Cache</a></div><div class="desc docblock-short">Represents mutable scratch space used by regex engines during a search.</div></li><li><div class="item-name"><a class="struct" href="struct.CapturesMatches.html" title="struct regex_automata::meta::CapturesMatches">CapturesMatches</a></div><div class="desc docblock-short">An iterator over all non-overlapping leftmost matches with their capturing
groups.</div></li><li><div class="item-name"><a class="struct" href="struct.Config.html" title="struct regex_automata::meta::Config">Config</a></div><div class="desc docblock-short">An object describing the configuration of a <code>Regex</code>.</div></li><li><div class="item-name"><a class="struct" href="struct.FindMatches.html" title="struct regex_automata::meta::FindMatches">FindMatches</a></div><div class="desc docblock-short">An iterator over all non-overlapping matches.</div></li><li><div class="item-name"><a class="struct" href="struct.Regex.html" title="struct regex_automata::meta::Regex">Regex</a></div><div class="desc docblock-short">A regex matcher that works by composing several other regex matchers
automatically.</div></li><li><div class="item-name"><a class="struct" href="struct.Split.html" title="struct regex_automata::meta::Split">Split</a></div><div class="desc docblock-short">Yields all substrings delimited by a regular expression match.</div></li><li><div class="item-name"><a class="struct" href="struct.SplitN.html" title="struct regex_automata::meta::SplitN">SplitN</a></div><div class="desc docblock-short">Yields at most <code>N</code> spans delimited by a regular expression match.</div></li></ul></section></div></main></body></html>