Сравнение обработчиков регулярных выражений

редактировать

Это сравнение обработчиков регулярных выражений.

Содержание
  • 1 Библиотеки
  • 2 языка
  • 3 Языковые функции
    • 3.1 Часть 1
    • 3.2 Часть 2
  • 4 Функции API
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
Библиотеки
Список библиотек регулярных выражений
НазваниеОфициальный сайтЯзык программирования Лицензия на программное обеспечение Используется
Boost.RegexБиблиотеки Boost C ++ C ++ Boost Notepad ++>= 6.0.0, EmEditor
Boost.XpressiveБиблиотеки Boost C ++ C ++Boost
Edi Weitz Common Lisp BSD
Jeff Stuart C ++GPL
DEELXRegExLab C ++Бесплатное личное и коммерческое использование
FREJНечеткие регулярные выражения для Java Java LGPL
GLib / GRegexСправочное руководство по GLib C LGPL
GRETA Microsoft Research C ++?
Gregex Grovf Inc. RTL, HLSСобственный механизм FPGA с ускорением>100 Гбит / с регулярных выражений для кибербезопасности, финансов и электронной коммерции.
RXP Titan IC RTLСобственное аппаратное ускорение поиска с использованием RegEx, доступное для ASIC, FPGA и облака. Обеспечивает массовую параллельную обработку контента на сверхвысоких скоростях.
HyperscanIntel C, x86 -специфическая сборка (SSSE3 +)BSD с тремя пунктамиRspamd
ICU Международные компоненты для Unicode C, C ++ICU Foundation (версии Apple и Swift с открытым исходным кодом)
Jakarta / RegexpПроект Apache Jakarta JavaApache
java.util.regexРуководство пользователя Java JavaGNU GPLv2 с исключением пути к классамjEdit
JRegexJRegex JavaBSD
MATLAB Регулярные выражения Язык MATLAB MATLAB, язык технических вычислений
Oniguruma Kosako CBSD, Take Консоль команд, Tera Term, TextMate, Sublime Text, SubEthaEdit, EmEditor и jq
Onigmo CBSDRuby
PattwoStevesoftJava (совместимый с Java 1.0)LGPL
PCRE pcre.org C, C ++BSDHTTP-сервер Apache, Nginx, BBEdit, Юлия, HHVM, Notepad ++ <6.0.0, PHP, Delphi, R
Qt / QRegExpDigia C ++Qt GNU GPL v. 3.0,

Qt GNU LGPL v. 2.1, Qt Commercial

, Kile
regex - библиотеки регулярных выражений Генри Спенсера ArgList CBSD
RE2 RE2 C ++BSDGo, Google Sheets, Gmail, G Suite
Расширенные регулярные выражения Генри Спенсера Tcl CBSD
RGXRGX Библиотека компонентов на основе C ++P6R
SubRegМэтт Бакнолл CMIT
TPerlRegExTPerlRegEx VCL Component Object Pascal MPLv1.1
TRE Вилле Лаурикари CBSDmusl
TRegExprRegExp Studio Object PascalДвойная лицензия: бесплатное ПО или LGPL с исключением статической компоновкиTotal Commander
XRegExpXRegExp JavaScriptMIT
Wolfram Language (Mathematica )Центр документации Wolfram Language Wolfram Язык Mathematica,
Языки
Список языков и фреймворки, включая поддержку регулярных выражений
ЯзыкОфициальный веб-сайтЛицензия на программное обеспечение Примечания
ActionScript 3Центр технологий ActionScript Бесплатно
APL (APLX, Dyalog, GNU)APL Wiki Лицензировано соответствующей реализацией⎕SS(PCRE), ⎕R/⎕S(PCRE), ⎕SS(PCRE2), соответственно
C ++ 11 (C ++ )Веб-сайт стандартов C ++ Лицензия соответствующей реализацииНачиная с ISO14822: 2011 (e), аналогичные в ECMAScript по умолчанию (Грамматическое описание)
D D Лицензия Boost Software
Go Golang.org BSD-style
Haskell Haskell.org BSD3 Опущено в языке report, а в Иерархических библиотеках GHC
Java Java Стандартная общественная лицензия GNU RE записываются в виде строк в исходном коде: все обратные косые черты должны быть удвоены, что ухудшает читаемость.
JavaScript (ECMAScript )ECMA-262 BSD3 Limited, но RE являются первоклассными гражданами языка с особым /.../modсинтаксис.
Джулия JuliaLang.org Лицензия MIT RE являются частью базовой библиотеки языка, использующей встроенный PCRE, и доступна дополнительная оболочка для (кода C) ICU.
Lua Lua.org Лицензия MIT Использует упрощенный, ограниченный диалект; может быть привязан к более мощной библиотеке, такой как PCRE, или альтернативному синтаксическому анализатору, например LPeg.
Mathematica Wolfram Собственность
.NET MSDN Лицензия MIT
Nim nim-lang.org Лицензия MIT Стандартная библиотека включает основанные на PCRE re и nre, а также различные альтернативы (например, Strutils, pegs (Parsing Expression Grammar сопоставление), strscans, parseutils и т. Д.).
Free Pascal (Object Pascal )www.freepascal.org LGPL с исключением статического связыванияFree Pascal 2.6+ поставляется с TRe gExpr от Сорокина и двух других библиотек регулярных выражений; См. wiki.lazarus.freepascal.org/Regexpr.
OCaml Caml LGPL По состоянию на 2010 г. стандартный модуль обычно считается устаревшим; часто рекомендуются библиотеки pcre (с полной поддержкой PCRE) и re (которые не так полны, но претендуют на лучшую производительность и предоставляют интерфейсы для популярных синтаксисов: PCRE, Perl, Posix, Emacs, глобуляция оболочки).
Perl Perl.com Artistic License или Стандартная общественная лицензия GNU Полная центральная часть языка
PHP PHP.net Лицензия PHP Имеет две реализации, причем PCRE является более эффективным по скорости, функции
POSIX C (C )Веб-публикация POSIX.1 Лицензируется соответствующей реализациейПоддерживает Синтаксис POSIX BRE и ERE
Python python.org Лицензия Python Software Foundation Python имеет две основные реализации: встроенный re и регулярное выражение библиотека.
Ruby ruby-doc.org Стандартная общественная лицензия для библиотеки GNU Ruby 1.8, Ruby 1.9 и Ruby 2.0 и более поздние версии используют разные механизмы; Ruby 1.9 интегрирует Oniguruma, Ruby 2.0 и позже интегрирует Onigmo, форк от Oniguruma.
Rust docs.rs Лицензия MIT Первичный ящик регулярных выражений не позволяет использовать выражения просмотра. Есть привязка Oniguruma под названием onig, которая работает.
SAP ABAP SAP.com Собственный
Tcl tcl.tk Лицензия Tcl / Tk. (в стиле BSD)Tcl Библиотека дублирует библиотеку регулярных выражений.
Wolfram Language Wolfram Research Собственный : можно бесплатно использовать в ограниченном масштабе на платформе разработки Wolfram
XML Schema W3C Лицензировано соответствующей реализацией
XPath 3 / XQuery W3C Лицензируется соответствующей реализацией
Языковые функции

ПРИМЕЧАНИЕ: Приложение, использующее библиотеку для поддержки регулярных выражений, не обязательно предлагает полную набор функций библиотеки, например GNU grep, использующий PCRE, не поддерживает опережающий просмотр, хотя PCRE поддерживает.

Часть 1

Сравнение языковых характеристик (часть 1)
«+» квантификаторИнвертированные классы символовНежадные квантификаторы.Застенчивые группы.РекурсияПросмотр впередПросмотр назадОбратные ссылки.>9 индексируемых захватов
ДаДаДаДаДаДаДаДаДа
ДаДаДаДаДаДаДаДаДа
ДаДаДаДаНетДаДаДаДа
EmEditor ДаДаДаДаНетДаДаДаНет
FREJNoНетНекоторыеДаНетНетНетДаДа
GLib / GRegexДаДаДаДаДаДаДаДаДа
GNU grep ДаДаДаДаНетДаДаДа?
Haskell ДаДаДаДаНетДаДаДаДа
RXP ДаДаДаДаНетНетНетДаДа
ICU RegexДаДаДаДаНетДаДаДаДа
Java ДаДаДаДаНетДаДаДаДа
JavaScript (ECMAScript )ДаДаДаДаНетДаДаДаДа
ДаДаДаДаНетДаДаДаДа
Lua ДаДаНекоторыеНетНетНетНетДаНет
.NET ДаДаДаДаНетДаДаДаДа
OCaml ДаДаНетНетНетНетНетДаНет
OmniOutliner 3.6.2ДаДаДаНетНетНетНет??
PCRE ДаДаДаДаДаДаДаДаДа
Perl ДаДаДаДаДаДаДаДаДа
PHP ДаДаДаДаДаДаДаДаДа
Python ДаДаДаДаДаДаДаДаДа
Qt / QRegExpДаДаДаДаНетДаНетДаДа
RE2 ДаДаДаДаНетНетНетНетДа
Рубин / Onigmo ДаДаДаДаДаДаДаДаДа
TRE ДаДаДаДаНетНетНетДаНет
ДаДаДаДаНетДаДаДаНет
RGXДаДаДаДаНетДаДаДаДа
Tcl ДаДаДаДаНетДаДаДаДа
TRegExprДа?Да??????
Схема XML ДаДаНетНетНетНетНетНетНет A
XPath 3 / XQuery ДаДаДаДаНетНетНетДаДа es
XRegExpДаДаДаДаНетДаНетДаДа

Часть 2

Сравнение языковых функций (часть 2)
Директивы.Условные выраженияАтомарные группы.Именованный захват.КомментарииВстроенный кодПоддержка свойств Unicode Балансирующие группы.Предварительные просмотры переменной длины.
ДаДаДаДаДаНетНекоторыеНетНет
ДаНетДаДаДаНетНетНетНет
ДаДаДаДаДаДаНекоторыеНетНет
EmEditor ДаДа??ДаНет?НетНет
FREJНетНетДаДаДаНет?НетНет
GLib / GRegexДаДаДаДаДаНетНекоторыеНетНет
GNU grep ДаДа?ДаДаНетНетНетНет
Haskell ?????НетНетНетНет
RXP ДаДаНетДаДаНетНетНетНет
ICU RegexДаНетДаДаДаНетДаНетНет
Java ДаНетДаДаДаНетНекоторыеНетНет
JavaScript (ECMAScript )НетНетНетНетНетНетНекоторыеНетНет
ДаДаДаДаДаНетНекоторыеНетДа
Lua НетНетНетНетНетНетНетНетНет
.NET ДаДаДаДаДаНетНекоторыеДаДа
OCaml НетНетНетНетНетНетНетНетНет
OmniOutliner 3.6.2????НетНет?НетНет
PCRE ДаДаДаДаДаДаДаНетНет
Perl ДаДаДаДаДаДаДаНетNo
PHP ДаДаДаДаДаНетНетНетНет
Python ДаДаДаДаДаНетДаНетДа
Qt / QRegExpНетНетНетНетНетНетНетНетНет
RE2 ДаНет?ДаНетНетНекоторыеНетНет
Ruby / Onigmo ДаДаДаДаДаДаНекоторыеНетНет
Tcl ДаНетДаНетДаНетДаНетНет
TRE ДаНетНетНетДаНет?НетНет
ДаНетДаНетНетНетНетНетДа
RGXДаДаДаДаДаНетДаНетНет
Схема XML НетНетНетНетНетНетДаНетНет
XPath 3 / XQuery НетНетНетНетНетНетДаНетНет
XRegExpТолько ведущийНетНетДаДаНетДаН oНет
Функции API
Сравнение функций API
Собственная UTF-16 поддержкаСобственная Поддержка UTF-8 Многострочное соответствиеЧастичное совпадение
НетНетДаДа
GLib / GRegexДаДаДаДа
RXP ДаДаНетДа
ICU RegexДаНетДа?
Java НетЧастичноДаДа
.NET NoДаДа?
PCRE ДаДаДаДа
Qt / QRegExpДаНетНет?
Tcl ДаДаДа?
TRE ДаДаДа?
RGXНетНетДа?
wxWdigets :: wxRegEx ДаДаДа?
XRegExpДа?Да?
См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-15 08:05:06
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте