WikiProject Computing / Программное обеспечение | |
Отсутствует модуль регулярного выражения Python
https://pypi.python.org/pypi/regex поддерживает более широкий набор функций, чем стандартный модуль re pythons , особенно рекурсивное сопоставление с образцом - ThomasKalka ( доклад ) 11:02, 28 марта 2016 г. (UTC)
Обновление за январь 2010 г.
Внесены некоторые обновления - недостаточно места для их документирования в однострочном резюме. Некоторые из этих комментариев касаются ранее сделанных комментариев (ниже).
Обновления включают:
- удаление заметок о том, что что-то было доступно только с 2007 года (версия была упомянута, но выпущена 5 лет назад) ....
- удалить примечания о поддержке Unicode там, где было примечание (поддерживает ВСЕ, включая двоичные) ... если он поддерживает это, он поддерживает его, специальное примечание не требуется для «всех», скорее, должны быть только «частичные» случаи поддержки принято к сведению.
- изменено примечание для «частичной поддержки», чтобы указать, что такой статус был временным и что «полное соответствие» зависело от обновлений после выпуска новых версий.
- удалены столбцы сравнения для «частичных» совпадений и «нечетких совпадений» - ни одна из функций "* Regular * Expressions". Последнее, которое было определено, специально НЕ является функцией регулярных выражений, а скорее дополнительной функцией некоторых * продуктов * которые включают механизм регулярных выражений. Сравнение продуктов, которые включают регулярные выражения, - это не то же самое, что сравнение регулярных выражений ». Хотя это не было определено (как вы можете сравнивать что-то, что является« неопределенным »), я считаю, что это относится к * продукту функция *, например, что-то вроде 'vim', где она соответствует исходному тексту, независимо от того, что вы ввели в * строку поиска *, в реальном времени. Это не функция механизма регулярных выражений, а функция продукта. некоторых * РЕДАКТОРОВ * - то есть дело не в «движке регулярных выражений». Я готов поспорить, что все продукты могут соответствовать действительной подстроке, содержащей более крупное регулярное выражение. Точно так же я бы поспорил, что любая программа, использующая эти регулярные выражения, может быть запрограммирована на игнорирование ошибок пока что-то «набирали». Таким образом, к этой статье не имеет отношения.
- Примечания: 1) «Нечеткое» сопоставление включает нечеткую логику, которая по определению не является логикой, управляемой состоянием, и, следовательно, по определению не может быть частью механизма выражения * Regular *. Тем не менее, это может быть функция продукта, позволяющая допускать различные уровни «ошибок» при сопоставлении данного RegEx, но величина ошибки не является двоичным свойством (поэтому нечетко) - следовательно, не Regular. Нечеткая логика обычно относится к сфере искусственного интеллекта, а не к регулярным выражениям.
- Примечание 2: (не упоминается в статье) - PCRE получает свой код из Perl, поэтому его функции обычно отслеживают Perl. PCRE - это аббревиатура от Perl-совместимого регулярного выражения. а движок в Ruby происходит от PCRE - и пытается отслеживать его особенности. Движок Ruby был создан специально для добавления поддержки японского языка ДО того, как UTF-8 стал широко распространенным. Таким образом, изначально он поддерживал 16-битную кодировку, но для японских кодировок на основе локали. Полноценная поддержка Unicode появилась только после того, как была добавлена поддержка UTF-8.
(Это написано после обновления «Части 2». Я смотрю на «« Часть 3 »», чтобы увидеть, что там можно восстановить ... начал писать комментарии, но лучше я сделаю это, а затем скажу, что было сделано, как если бы я зациклился на том, что я буду делать, я могу этого не сделать ... (я уже немного устал от этих обновлений) ... Астара Афина ( разговор ) 21:44, 22 января 2012 г. (УНИВЕРСАЛЬНОЕ ГЛОБАЛЬНОЕ ВРЕМЯ)
Неточно определенные термины
Слишком много терминов, используемых в качестве заголовков, расплывчаты или применимы только к терминологии, используемой для одного механизма RE. Что действительно нужно этой статье, так это глоссарий ее терминов.
Также справедливо отметить, что многие из таблиц здесь могут быть прозаическими, и это облегчит их цитирование. - Хармил 19:47, 27 апреля 2007 г. (UTC)
- Я согласен, что описание терминологии было бы полезно. Однако я категорически не согласен, что некоторые таблицы следует преобразовывать в текст. Во-первых, потому что это убирает главную особенность этой статьи - возможность видеть различия за секунды, не читая часами, - а во-вторых, цитирование Википедии в любом случае не рекомендуется. // Весна 17:20, 11 июля 2007 г. (UTC)
- Не могли бы вы привести примеры терминологии, которую вы считаете слишком расплывчатой или применимой только к «терминологии, используемой для одного механизма RE?» (Я не совсем понимаю, что вы имеете в виду.) Я думаю, что термины довольно просты. IMO, более серьезная проблема заключается в том, что очень большое количество важных функций, поддерживаемых некоторыми библиотеками регулярных выражений, в настоящее время не представлены в сравнительных таблицах здесь. - Monger 04:03, 12 июля 2007 г. (UTC)
- Что такое «ленивый квантификатор»? Я не могу найти упоминания об этом больше нигде. 72.220.174.159 20:24, 26 июля 2007 г. (UTC)
- Вы, должно быть, не смотрели очень далеко. В содержании квантификаторов регулярных выражений ленивый - противоположность жадности. См. Http://www.regular-expressions.info/repeat.html для получения дополнительной информации. Я также видел ленивые кванторы, описанные как «не жадные» или «неохотные». - Monger 01:17, 27 июля 2007 г. (UTC)
- Ленивый - не противоположность жадности, это плохое имя. Кроме того, я никогда раньше не видел, чтобы это называлось «ленивый», «нежадный» - это стандартный термин. mathrick ( разговор ) 23:42, 2 февраля 2008 (UTC)
- Вы, должно быть, не смотрели очень далеко. В содержании квантификаторов регулярных выражений ленивый - противоположность жадности. См. Http://www.regular-expressions.info/repeat.html для получения дополнительной информации. Я также видел ленивые кванторы, описанные как «не жадные» или «неохотные». - Monger 01:17, 27 июля 2007 г. (UTC)
Удаление ароматов без информации
Если другие не согласятся, я планирую удалить из сравнительных таблиц все разновидности и движки, которые в настоящее время не имеют информации об их перечисленных функциях. В настоящее время это включает следующее:
- ActionScript3.0
- Boost.Xpressive
- Grep
- ГРЕТА
- Джакарта / Regexp
- Онигурума
- SubEthaEdit
- Tcl 8.1
- TextMate
Я бы посоветовал другим перечислить информацию об особенностях этих движков, особенно потому, что некоторые из них очень важны и широко используются. Однако я не вижу смысла перечислять их без какой-либо информации (ни одна из них не включает больше пары «нет»). - Monger 00:54, 17 июля 2007 г. (UTC)
- Я пошел вперед и сделал это. - Monger 01:00, 20 июля 2007 г. (UTC)
Поддержка свойств Unicode
Я не нашел никаких доказательств того, что Python поддерживает свойства Unicode (например \p{L}
). Я не уверен, как обстоят дела с другими реализациями, поэтому исправляю только элемент Python. См., Например, [1] . Михал ( разговор ) 21:10, 9 января 2008 (UTC)
На момент написания этой статьи только ICU и Perl предлагают полную поддержку свойств Unicode; примечания добавлены. Я не могу найти никаких доказательств того, что ВИМ опоры свойства Unicode (например \pL
, \p{Lu}
, \p{Alphabetic}
, \p{Script=Latin}
или \p{Line_Break=A_Letter}
. Я сняла свою поддержку.
Я настоятельно рекомендую, чтобы простое упоминание о поддержке свойств Unicode - слишком широкая кисть, чтобы ее можно было использовать. Наиболее важным является то, соответствует ли система регулярных выражений требованиям, изложенным в Регулярных выражениях Юникода . Это довольно специфично для формальных требований, таких как Уровень 1, Уровень 2 или Уровень 3. Предложения? Соответствие стандартам легко найти через конкретные утверждения в документации на каждом языке.
Даже упоминание о том \w
, работают ли такие вещи, как , \s
и \b
с Unicode, или они работают только с ASCII, было бы гораздо полезнее, чем текущие функции столбцов. 17:50, 5 февраля 2010 г. (UTC) - предыдущий неподписанный комментарий добавлен в 98.245.82.12 ( обсуждение )
Языки?
Что именно должна отображать таблица языков? Языки, в которых есть встроенные регулярные выражения? Языки, для которых существует библиотека регулярных выражений? Что-то другое? В нынешнем виде это совершенно бессмысленно. mathrick ( разговор ) 00:30, 3 февраля 2008 г. (UTC)
- Языки со встроенными регулярными выражениями - 208.80.119.67 ( разговор ) 03:32, 14 июля 2011 г. (UTC)
Табличные сноски
Я нашел сноски в этих таблицах почти бесполезными. Почему они используют возврат? Я могу использовать refun, когда есть только одна или две заметки, но не когда их 7. Мне пришлось сравнивать имена ссылок в концевых сносках с самими заметками, чтобы выяснить, какую заметку мне было интересно прочитать. Аргонель ( разговор ) 21:43, 28 мая 2008 (UTC)
Скорость
Другой интересный момент для сравнения, конечно, может быть скорость (или тип реализации); некоторые ссылки в статье Сопоставление регулярных выражений может быть простым и быстрым . - Лапо Лучини ( разговор ) 14:58, 31 августа 2008 г. (UTC)
Несоответствие между языковыми функциями, часть 1 и примечание выше
В примечании выше Части 1 «Языковые функции» говорится:
- ПРИМЕЧАНИЕ. Приложение, использующее библиотеку для поддержки регулярных выражений, не обязательно предлагает полный набор функций библиотеки, например, GNU Grep, использующий PCRE, не предлагает поддержки упреждающего просмотра, хотя PCRE делает.
Однако таблица показывает, что GNU Grep поддерживает опережающий просмотр. К сожалению, я не уверен, что это правда, возможно, кто-то другой, кто знает, сможет это исправить. - Предыдущий беззнаковый комментарий добавлен 99.42.116.61 ( обсуждение ) 22:03, 28 апреля 2013 г. (UTC)
Внешние ссылки изменены
Привет, друзья Википедии,
Я только что изменил 4 внешние ссылки на Сравнение движков регулярных выражений . Пожалуйста, найдите время, чтобы просмотреть мою правку . Если у вас есть какие-либо вопросы или вам нужно, чтобы бот игнорировал ссылки или страницу в целом, посетите этот простой FAQ для получения дополнительной информации. Я внес следующие изменения:
- Добавлен архив https://archive.is/20081203133158/http://jeff.bleugris.com/journal/projects/ в http://jeff.bleugris.com/journal/projects/
- Добавлен архив https://web.archive.org/web/20081201072631/http://www.regexlab.com/en/deelx/ в http://www.regexlab.com/en/deelx/
- Добавлен архив https://web.archive.org/web/20131122023923/http://www2.tcl.tk/461 на http://www2.tcl.tk/461
- Добавлен архив https://web.archive.org/web/20110715032327/https://www.p6r.com/software/rgx.html на https://www.p6r.com/software/rgx.html
Когда вы закончите просматривать мои изменения, вы можете следовать инструкциям в шаблоне ниже, чтобы исправить любые проблемы с URL-адресами.
По состоянию на февраль 2018 г. разделы страницы обсуждения «Изменены внешние ссылки» больше не создаются и не отслеживаются InternetArchiveBot . В отношении этих уведомлений на странице обсуждения не требуется никаких специальных действий, кроме регулярной проверки с использованием приведенных ниже инструкций инструмента архивирования. Редакторы имеют разрешение удалить эти разделы «Внешние ссылки изменены» на странице обсуждения, если они хотят убрать беспорядок на страницах обсуждения, но перед массовым систематическим удалением просматривают RfC . Это сообщение динамически обновляется с помощью шаблона (последнее обновление: 15 июля 2018 г.) .{{sourcecheck}}
- Если вы обнаружили URL-адреса, которые бот ошибочно считал мертвыми, вы можете сообщить о них с помощью этого инструмента .
- Если вы обнаружили ошибку в каких-либо архивах или самих URL-адресах, вы можете исправить их с помощью этого инструмента .
Ура. - InternetArchiveBot ( Сообщить об ошибке ) 17:41, 11 августа 2017 г. (UTC)
Недавно добавлены функции регулярных выражений Javascript.
В новых реализациях, как видно из предложения, были добавлены именованные группы захвата . [1]
В ES2018 есть предложение по ретроспективе , которое уже реализовано в некоторых движках. [2]
Также v8 уже некоторое время имеет юникод. [3] [4]
Рекомендации
- ^ «Проблема 2050343002: [regexp] Экспериментальная поддержка regexp named captures - Code Review» . codereview.chromium.org . Проверено 2 февраля 2018 .
- ^ Хаблич, Майкл (26.02.2016). "V8 JavaScript Engine: утверждения просмотра назад RegExp" . V8 JavaScript Engine . Проверено 2 февраля 2018 .
- ^ "3a2fbc3a4ed2802b52659df2209b930200d63b29 - v8 / v8 - Git at Google" . chromium.googlesource.com . Проверено 2 февраля 2018 .
- ^ "e1c645d1f41febae014b4d0dfe7dc6e4549fab5e - v8 / v8 - Git в Google" . chromium.googlesource.com . Проверено 2 февраля 2018 .
Двигатели можно разделить на категории
- Существуют официальные типы движков: DFA / NFA с отличием Традиционный NFA, Posix NFA (см. Освоение регулярных выражений, 3-е издание Джеффри Э. Фридла, глава 4 ).- И существует сильная группа совместимости с Perl (которая несколько лет назад подтолкнула разработку регулярных выражений). Perl 5.005 представил новые возможности ( улучшения регулярных выражений Perl 5.005 ), такие как Lookbehind, условные выражения, атомарные группы. Много лет спустя Perl 5.10 представил другие новые возможности ( улучшения регулярных выражений Perl 5.1 ), такие как именованные буферы захвата, положительные квантификаторы, относительные обратные ссылки, \ K и другие. Механизм регулярных выражений в версии 5.10 был разработан в сотрудничестве с проектом PCRE, наиболее интересные функции были добавлены между 1997 и 2007 годами ( Курируемая история PCRE ).
Поскольку Perl является / был стандартом де-факто для регулярных выражений, большинство движков в этой статье Википедии имеют грамматику и функции, четко установленные до выпуска Perl 5.005, между Perl 5.005 и 5.10 или после Perl 5.10.
Себастьян - 88.217.185.170 ( разговорное ) 21:47, 12 октября 2019 г. (UTC)
- Немного покопаемся: PCRE была создана в 1997 году, когда вышел Perl 5.004. PCRE 2.0 был создан в 1998 году, когда был выпущен Perl 5.005 (с обновлениями регулярных выражений). PCRE 7.0-7.3 были созданы в 2006-2007 годах в рамках совместной разработки Perl 5.10 (с большим количеством новаторских обновлений регулярных выражений). Себастьян - 88.217.185.170 ( разговорное ) 22:20, 12 октября 2019 (UTC)