RE2 (software) - RE2 (software)
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Původní autoři | |
---|---|
První vydání | 11. března 2010[1] |
Stabilní uvolnění | 2020-05-01 / 1. května 2020[2] |
Úložiště | ![]() |
Napsáno | C ++ |
Operační systém | Cross-platform |
Typ | Porovnávání vzorů knihovna |
Licence | BSD |
webová stránka | github![]() |
RE2 je software knihovna pro regulární výrazy přes a konečný stavový stroj použitím teorie automatů, na rozdíl od téměř všech ostatních knihovny regulárních výrazů, které používají ustoupit implementace. Poskytuje C ++ rozhraní.
RE2 byl implementován a je používán Google.
Srovnání s PCRE
"RE2" se obecně srovnává s Perl kompatibilní regulární výrazy (PCRE) ve výkonu. Pro určité operátory regulárního výrazu jako |
(logická disjunkce nebo booleovský „nebo“) překračuje PCRE. Na druhou stranu RE2 nepodporuje zpětné odkazy a nemůže je efektivně implementovat. Je také o něco pomalejší než PCRE pro operace zachycení závorek.
PCRE může používat velké rekurzivní zásobník s odpovídajícím velkým využitím paměti a mají exponenciální runtime na určitých vzorcích. Naproti tomu RE2 používá pevný zásobník a zaručuje zvýšení doby chodu lineárně (ne exponenciálně) s velikostí vstupu. Maximální paměť přidělená RE2 je konfigurovatelná.
RE2 má o něco menší sadu funkcí než PCRE, ale má velmi předvídatelný běh a maximální přidělení paměti. Díky tomu je vhodný pro použití v serverových aplikacích, které vyžadují hranice využití paměti a výpočetního času. PCRE na druhé straně má téměř všechny funkce, které knihovna regulárních výrazů může mít, ale má nepředvídatelné využití běhu a paměti a může růst neomezeně.
Použití ve službách Google
RE2 například používá Google produkty jako Gmail, Dokumenty Google a Tabulky Google[3]. Dokumentaci syntaxe najdete v github: Syntaxe RE2.
V Tabulkách Google se používá ve funkcích RegexMatch (), RegexReplace (), RegexExtract () a najít a nahradit funkci. RegexExtract (), nepoužívá se seskupení.
Viz také
Reference
- ^ Cox, Russ (11. března 2010). „RE2: principiální přístup k porovnávání regulárních výrazů“. Blog Google s otevřeným zdrojovým kódem. Citováno 2020-05-29.
- ^ „Zprávy“. Github. Citováno 2020-05-29.
- ^ „Hledat a používat najít a nahradit“. Citováno 24. března 2020.