RE2 (программное обеспечение) - RE2 (software)

RE2
Оригинальный автор (ы)Google
изначальный выпуск11 марта 2010 г.; 10 лет назад (2010-03-11)[1]
Стабильный выпуск
2020-05-01 / 1 мая 2020; 7 месяцев назад (2020-05-01)[2]
Репозиторий Отредактируйте это в Викиданных
Написано вC ++
Операционная системаКроссплатформенность
ТипСопоставление с образцом библиотека
ЛицензияBSD
Интернет сайтgithub.com/Google/ re2 Отредактируйте это в Викиданных

RE2 это программное обеспечение библиотека за обычные выражения через конечный автомат с помощью теория автоматов, в отличие от почти всех других библиотеки регулярных выражений, которые используют возврат реализации. Он обеспечивает C ++ интерфейс.

RE2 был реализован и используется Google.

Сравнение с PCRE

"RE2" обычно сравнивается с Регулярные выражения, совместимые с Perl (PCRE) в исполнении. Для некоторых операторов регулярных выражений, таких как | (логическая дизъюнкция или же логический "или") превышает PCRE. С другой стороны, RE2 не поддерживает обратные ссылки и не может их эффективно реализовать. Он также немного медленнее, чем PCRE для операций захвата скобок.

PCRE может использовать большой рекурсивный стек с соответствующим высоким использованием памяти и иметь экспоненциальный время выполнения по определенным шаблонам. Напротив, RE2 использует фиксированный стек и гарантирует увеличение времени выполнения. линейно (не экспоненциально) с размером ввода. Максимальный объем памяти, выделяемый RE2, можно настроить.

RE2 имеет немного меньший набор функций, чем PCRE, но имеет очень предсказуемое время выполнения и максимальное выделение памяти. Это делает его подходящим для использования в серверных приложениях, требующих ограничений на использование памяти и время вычислений. PCRE, с другой стороны, имеет почти все функции, которые может иметь библиотека регулярных выражений, но имеет непредсказуемое время выполнения и использование памяти и может неограниченно расти.

Использование в продуктах Google

RE2, например, используется Google продукты как Gmail, Документы Google и Google Таблицы[3]. См. Github для документации по синтаксису: Синтаксис RE2.

В Google Таблицах он используется в функциях RegexMatch (), RegexReplace (), RegexExtract () и найти и заменить функцию. RegexExtract (), не использует группировка.

Смотрите также

Рекомендации

  1. ^ Кокс, Расс (11 марта 2010 г.). «RE2: принципиальный подход к сопоставлению регулярных выражений». Блог Google с открытым исходным кодом. Получено 2020-05-29.
  2. ^ «Релизы». Github. Получено 2020-05-29.
  3. ^ "Искать и использовать найти и заменить". Получено 24 марта 2020.