Это сравнение движков регулярных выражений .
Библиотеки
- ^ Ранее назывался Regex++.
- ^ ab Один из механизмов нечетких регулярных выражений .
- ^ Включено с версии 2.13.0.
- ^ ICU4J, версия Java, не поддерживает регулярные выражения.
- ^ Привязки C++ были разработаны Google и официально стали частью PCRE в 2006 году.
Языки
- ^ "STD.regex - Язык программирования D - Цифровой Марс".
- ^ "Dotnet/Corefx". GitHub . 16 февраля 2022 г.
- ^ "Dotnet/Corefx". GitHub . 16 февраля 2022 г.
Особенности языка
ПРИМЕЧАНИЕ: Приложение, использующее библиотеку для поддержки регулярных выражений, не обязательно поддерживает полный набор функций библиотеки, например, GNU grep использует PCRE, но не поддерживает опережающий просмотр, хотя PCRE поддерживает.
Часть 1
- ^ Нежадные квантификаторы соответствуют как можно меньшему количеству символов, вместо как можно большего количества символов по умолчанию. Обратите внимание, что многие старые, до POSIX- движки были нежадными и вообще не имели жадных квантификаторов.
- ^ К скрытым группам , также называемым незахватывающими группами, нельзя обращаться с помощью обратных ссылок; незахватывающие группы используются для ускорения сопоставления, когда к содержимому группы не требуется обращаться позже.
- ^ Обратные ссылки позволяют ссылаться на ранее сопоставленные группы в последующих частях регулярного выражения и/или строки замены (где применимо). Например, ([ab]+)\1 соответствует "abab", но не "abaab".
- ^ «Синтаксис регулярных выражений Perl - 1.47.0».
- ^ "Руководство пользователя - 1.47.0".
- ^ ab FREJ не имеют повторяющихся квантификаторов, но имеют «необязательный» элемент, который ведет себя аналогично простому квантификатору «?».
- ^ ab По состоянию на ES2018
- ^ Единственный нежадный квантификатор Lua — это
-
, который является нежадной версией *
. Он не имеет нежадных версий +
или ?
; в первом случае нежадный эффект может быть достигнут повторением токена, за которым следует -
, но во втором случае эквивалента нет. - ^ Поддерживается только дополнительной библиотекой регулярных выражений.
Часть 2
- ^ Также известны как модификаторы флагов , модификаторы режимов или опциональные буквы . Пример шаблона: "(?i:test)".
- ^ Также называются независимыми подвыражениями .
- ^ Аналогично обратным ссылкам, но с именами вместо индексов.
- ^ Специальная функция, позволяющая сопоставлять сбалансированные конструкции без рекурсии.
- ^ Относится к возможности включения квантификаторов в ретроспективные проверки, что делает их длину непредсказуемой.
- ^ abcdefghi Поддержка свойств Unicode может быть неполной (продукты постоянно обновляются!). Все они будут неполными, когда будет выпущена новая версия Unicode, пока они не будут обновлены для соответствия.
- ^ Доступно с ICU55.
- ^ Доступно с JDK7.
- ^ Поддержка и диапазон свойств зависят от реализации.
- ^ Экспериментальная поддержка добавлена в v5.29.9.
- ^ Поддерживается только Python v3.11 и более поздними версиями, а также дополнительной библиотекой регулярных выражений.
- ^ Может быть доступно только в библиотеке регулярных выражений при использовании с версиями Python после 3.3.
- ^ Поддерживается только дополнительной библиотекой регулярных выражений.
API-функции
- ^ ab Означает, что формат может использоваться внутри системы без явного преобразования.
- ^ Частичное совпадение всего регулярного выражения. Например, шаблон ".*END$" будет соответствовать любой строке частично, но только строкам, заканчивающимся на END полностью.[1].
- ^ ab Поддерживает стандарт Unicode 15.0 с 2023 года.[2].
- ^ Реализация использует оригинальную поддержку/функции UCS-2 , поэтому она распознает только 64 тыс. символов (по сравнению с 1 112 064 символами UTF-16 ). Представитель разработчика Microsoft ответил на сообщение об ошибке по этому поводу как «не будет исправлено» в 2010 году.[3].
- ^ Начиная с версии 8.30.
- ^ Частичное сопоставление выполняется неявно, требуя отдельного вызова matchedLength(), если точное сопоставление не удалось.
- ^ Tcl включает возможности преобразования в UTF-8 и обратно.
- ^ wxRegEx использует любую системную библиотеку POSIX или, если она недоступна, а также для режима Unicode, использует библиотеку Генри Спенсера .
Смотрите также
Ссылки
- ^ «Начало работы – Документация Hyperscan 5.4.0».
- ^ «Regex — Регулярные выражения в OCaml».
- ^ «Рекурсивные регулярные выражения — Учебное пособие».
- ^ «UTS #18: Регулярные выражения Unicode».
- ^ "ECMA-262, 9-е издание, июнь 2018 г. Спецификация языка ECMAScript® 2018". www.ecma-international.org . Получено 4 августа 2020 г. .
Внешние ссылки
- Сравнение разновидностей регулярных выражений – Подробное сравнение самых популярных разновидностей регулярных выражений
- Краткое описание синтаксиса регулярных выражений
- Онлайн-тестирование регулярных выражений – с поддержкой Java, JavaScript, .Net, PHP, Python и Ruby
- Реализация регулярных выражений – серия статей Расса Кокса, автора RE2
- Механизмы регулярных выражений