Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Библиотеки [ править ]

  1. ^ Ранее назывался Regex ++.
  2. ^ a b Один из движков нечетких регулярных выражений .
  3. ^ Включено, начиная с версии 2.13.0.
  4. ^ ICU4J, версия для Java, не поддерживает регулярные выражения.
  5. ^ Привязки C ++ были разработаны Google и официально стали частью PCRE в 2006 году.

Языки [ править ]

  1. ^ http://www.digitalmars.com/d/2.0/phobos/std_regex.html
  2. ^ https://github.com/dotnet/corefx/blob/7116584186f8f3a886616aaf8cb5d4a982c60e27/src/System.Text.RegularExpressions/src/System/Text/RegularExpressions/Regex.cs#L2
  3. ^ https://github.com/dotnet/corefx#license

Особенности языка [ править ]

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

Часть 1 [ править ]

  1. ^ Нежадные квантификаторы соответствуют как можно меньшему количеству символов вместо максимального количества по умолчанию. Обратите внимание, что многие старыемеханизмы, предшествующие POSIX, были не жадными и вообще не имели жадных квантификаторов.
  2. ^ Застенчивые группы , также называемые группами без захвата, нельзя ссылаться на обратные ссылки; группы без захвата используются для ускорения сопоставления, когда к содержимому группы не требуется доступ позже.
  3. ^ Обратные ссылки позволяют ссылаться на ранее сопоставленные группы в более поздних частях регулярного выражения и / или замещающей строки (если применимо). Например, ([ab] +) \ 1 соответствует «abab», но не «abaab».
  4. ^ http://www.boost.org/doc/libs/1_47_0/libs/regex/doc/html/boost_regex/syntax/perl_syntax.html#boost_regex.syntax.perl_syntax.recursive_expressions
  5. ^ http://www.boost.org/doc/libs/1_47_0/doc/html/xpressive/user_s_guide.html#boost_xpressive.user_s_guide.grammars_and_nested_matches.embedding_a_regex_by_reference
  6. ^ a b FREJ не имеют повторяющихся квантификаторов, но имеют «необязательный» элемент, который ведет себя аналогично простому «?» квантификатор.
  7. ^ По состоянию на ES2018
  8. ^ Единственный нежадный квантификатор Lua-- это нежадная версия*. У него нет нежадных версий+или?; в первом случае нежадный эффект может быть достигнут повторением токена, за которым следует-, но во втором случае нет эквивалента.
  9. ^ Поддерживается только необязательнойбиблиотекой регулярных выражений .

Часть 2 [ править ]

  1. ^ Также известный как флаги модификаторов , режимы модификаторов или опционных букв . Пример шаблона: «(? I: test)».
  2. ^ Также называется независимыми подвыражениями .
  3. ^ Аналогично обратным ссылкам, но с именами вместо индексов.
  4. ^ Специальная функция, позволяющая сопоставить сбалансированные конструкции без рекурсии.
  5. ^ Относится к возможности включения кванторов в ретроспективы, что делает их длину непредсказуемой.
  6. ^ a b c d e f g h i Поддержка свойств Unicode может быть неполной (продукты постоянно обновляются!). Все будет неполным, когда будет выпущена новая версия Unicode, пока они не будут обновлены для соответствия.
  7. ^ Доступно с ICU55.
  8. ^ Доступно с JDK7.
  9. ^ Поддержка и набор свойств зависят от реализации.
  10. ^ Экспериментальная поддержка добавлена ​​в v5.29.9.
  11. ^ a b Поддерживается только дополнительной библиотекой регулярных выражений .
  12. ^ Может быть доступен только в библиотеке регулярных выражений при использовании с версиями Python после 3.3.

Возможности API [ править ]

  1. ^ a b Означает, что формат можно использовать внутри компании без явного преобразования.
  2. ^ Частичное совпадение всего регулярного выражения. Например, шаблон «. * END $» будет частично соответствовать любой строке, но только строкам, полностью оканчивающимся на END. [1] .
  3. ^ Поддерживает стандарт Unicode 4.0 с 2003 г .; последние планы для JDK7 включают поддержку Unicode 6.0 (2011). [2] .
  4. ^ Реализация использует оригинальнуюподдержку / функции UCS-2 , поэтому она распознает только 64 КБ символов (против1112 064 символа UTF-16 ). Представитель разработчика Microsoft ответил в отчете об этой ошибке как «не исправит» в 2010 году [3] .
  5. ^ Начиная с версии 8.30.
  6. ^ Tcl включает средства для преобразования в UTF-8 и обратно.
  7. ^ wxRegEx использует любую системнуюбиблиотеку POSIX или, если она недоступна, и для режима Unicode используетбиблиотеку Генри Спенсера .

См. Также [ править ]

  • Регулярное выражение § Реализации и время выполнения

Ссылки [ править ]

  1. ^ https://intel.github.io/hyperscan/dev-reference/getting_started.html#requirements
  2. ^ [4]
  3. ^ https://www.unicode.org/reports/tr18/
  4. ^ «ECMA-262, 9-е издание, июнь 2018 г. Спецификация языка ECMAScript® 2018» . www.ecma-international.org . Дата обращения 4 августа 2020 .

Внешние ссылки [ править ]

  • Сравнение вкусов регулярных выражений - подробное сравнение самых популярных разновидностей регулярных выражений.
  • Сводка синтаксиса регулярного выражения
  • Онлайн-тестирование регулярных выражений - с поддержкой Java, JavaScript, .Net, PHP, Python и Ruby
  • Реализация регулярных выражений - цикл статей Расс Кокса, автора RE2
  • Механизмы регулярных выражений