stringtranslate.com

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

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

Библиотеки

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

Языки

  1. ^ "STD.regex - Язык программирования D - Цифровой Марс".
  2. ^ "Dotnet/Corefx". GitHub . 16 февраля 2022 г.
  3. ^ "Dotnet/Corefx". GitHub . 16 февраля 2022 г.

Особенности языка

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

Часть 1

  1. ^ Нежадные квантификаторы соответствуют как можно меньшему количеству символов, вместо как можно большего количества символов по умолчанию. Обратите внимание, что многие старые, до POSIX- движки были нежадными и вообще не имели жадных квантификаторов.
  2. ^ К скрытым группам , также называемым незахватывающими группами, нельзя обращаться с помощью обратных ссылок; незахватывающие группы используются для ускорения сопоставления, когда к содержимому группы не требуется обращаться позже.
  3. ^ Обратные ссылки позволяют ссылаться на ранее сопоставленные группы в последующих частях регулярного выражения и/или строки замены (где применимо). Например, ([ab]+)\1 соответствует "abab", но не "abaab".
  4. ^ «Синтаксис регулярных выражений Perl - 1.47.0».
  5. ^ "Руководство пользователя - 1.47.0".
  6. ^ ab FREJ не имеют повторяющихся квантификаторов, но имеют «необязательный» элемент, который ведет себя аналогично простому квантификатору «?».
  7. ^ ab По состоянию на ES2018
  8. ^ Единственный нежадный квантификатор Lua — это -, который является нежадной версией *. Он не имеет нежадных версий +или ?; в первом случае нежадный эффект может быть достигнут повторением токена, за которым следует -, но во втором случае эквивалента нет.
  9. ^ Поддерживается только дополнительной библиотекой регулярных выражений.

Часть 2

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

API-функции

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

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

Ссылки

  1. ^ «Начало работы – Документация Hyperscan 5.4.0».
  2. ^ «Regex — Регулярные выражения в OCaml».
  3. ^ «Рекурсивные регулярные выражения — Учебное пособие».
  4. ^ «UTS #18: Регулярные выражения Unicode».
  5. ^ "ECMA-262, 9-е издание, июнь 2018 г. Спецификация языка ECMAScript® 2018". www.ecma-international.org . Получено 4 августа 2020 г. .

Внешние ссылки