Это сравнение обработчиков регулярных выражений.
Название | Официальный сайт | Язык программирования | Лицензия на программное обеспечение | Используется |
---|---|---|---|---|
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 | ||
DEELX | RegExLab | 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 и облака. Обеспечивает массовую параллельную обработку контента на сверхвысоких скоростях. |
Hyperscan | Intel | C, x86 -специфическая сборка (SSSE3 +) | BSD с тремя пунктами | Rspamd |
ICU | Международные компоненты для Unicode | C, C ++ | ICU | Foundation (версии Apple и Swift с открытым исходным кодом) |
Jakarta / Regexp | Проект Apache Jakarta | Java | Apache | |
java.util.regex | Руководство пользователя Java | Java | GNU GPLv2 с исключением пути к классам | jEdit |
JRegex | JRegex | Java | BSD | |
MATLAB | Регулярные выражения | Язык MATLAB | MATLAB, язык технических вычислений | |
Oniguruma | Kosako | C | BSD | , Take Консоль команд, Tera Term, TextMate, Sublime Text, SubEthaEdit, EmEditor и jq |
Onigmo | C | BSD | Ruby | |
Pattwo | Stevesoft | Java (совместимый с Java 1.0) | LGPL | |
PCRE | pcre.org | C, C ++ | BSD | HTTP-сервер Apache, Nginx, BBEdit, Юлия, HHVM, Notepad ++ <6.0.0, PHP, Delphi, R |
Qt / QRegExp | Digia | C ++ | Qt GNU GPL v. 3.0, | , Kile |
regex - библиотеки регулярных выражений Генри Спенсера | ArgList | C | BSD | |
RE2 | RE2 | C ++ | BSD | Go, Google Sheets, Gmail, G Suite |
Расширенные регулярные выражения Генри Спенсера | Tcl | C | BSD | |
RGX | RGX | Библиотека компонентов на основе C ++ | P6R | |
SubReg | Мэтт Бакнолл | C | MIT | |
TPerlRegEx | TPerlRegEx VCL Component | Object Pascal | MPLv1.1 | |
TRE | Вилле Лаурикари | C | BSD | musl |
TRegExpr | RegExp Studio | Object Pascal | Двойная лицензия: бесплатное ПО или LGPL с исключением статической компоновки | Total Commander |
XRegExp | XRegExp | JavaScript | MIT | |
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 поддерживает.
«+» квантификатор | Инвертированные классы символов | Нежадные квантификаторы. | Застенчивые группы. | Рекурсия | Просмотр вперед | Просмотр назад | Обратные ссылки. | >9 индексируемых захватов | |
---|---|---|---|---|---|---|---|---|---|
Да | Да | Да | Да | Да | Да | Да | Да | Да | |
Да | Да | Да | Да | Да | Да | Да | Да | Да | |
Да | Да | Да | Да | Нет | Да | Да | Да | Да | |
EmEditor | Да | Да | Да | Да | Нет | Да | Да | Да | Нет |
FREJ | No | Нет | Некоторые | Да | Нет | Нет | Нет | Да | Да |
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 | Да | Да | Да | Да | Нет | Да | Нет | Да | Да |
Директивы. | Условные выражения | Атомарные группы. | Именованный захват. | Комментарии | Встроенный код | Поддержка свойств 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 | Нет |
Собственная UTF-16 поддержка | Собственная Поддержка UTF-8 | Многострочное соответствие | Частичное совпадение | |
---|---|---|---|---|
Нет | Нет | Да | Да | |
GLib / GRegex | Да | Да | Да | Да |
RXP | Да | Да | Нет | Да |
ICU Regex | Да | Нет | Да | ? |
Java | Нет | Частично | Да | Да |
.NET | No | Да | Да | ? |
PCRE | Да | Да | Да | Да |
Qt / QRegExp | Да | Нет | Нет | ? |
Tcl | Да | Да | Да | ? |
TRE | Да | Да | Да | ? |
RGX | Нет | Нет | Да | ? |
wxWdigets :: wxRegEx | Да | Да | Да | ? |
XRegExp | Да | ? | Да | ? |