Список всех реализаций регулярных выражений? - PullRequest
20 голосов
/ 10 января 2011

Существует ли список реализаций Regex в Интернете, показывающий их различия / сходства?

Например, Emacs elisp Regex отличается от JavaScript или Perl, не говоря уже о всех различных реализациях, используемых разнымипрограммное обеспечение для редактирования,

, например, VS2010 использует {} вместо () для группировки выражений для обратных ссылок.

Когда-то я мог положиться на список преобразований Regex в Кратком справочнике Regex Pocket от O'Reilly, но что-то в Интернете было бы намного проще и полнее.

Кстати, яя знаю (конечно) http://www.regular -expressions.info / , что хорошо, но далеко не завершено.

Я составлю список из ответов, размещенных здесь, ичто-нибудь еще, что я могу найти.

Вариации

Общие Вариации

Различия в реализациях обычно заключаются в способе обработки специальных символов {}()[]^$ (экранирование правил и т. д.), ииногда заменяется;обработка / доступность классов символов POSIX, например, [:digit:], и использование опций, например, g i и т. д.

(работа в процессе, если вы знаете какие-либо предостережения, различия для этих реализацийпожалуйста, добавьте их в ответ)

  • ActionScript - использует стиль ECMA
  • Delphi (.Net) - использует стиль .Net.Delphi Win32 не имеет собственного регулярного выражения, но доступны обертки PCRE.
  • Emacs / ELisp - имеет 2 различных контекста, экранирование использует \\ в elisp и \ в regexp-replace.Специальные символы (){}[] экранируются при использовании их для функций регулярных выражений, подобно sed.
  • Eclipse - Поиск использует регулярное выражение в стиле Java.
  • GNU (Linux) - POSIX BRE / ERE
  • Grep - POSIX BRE / ERE
  • Groovy - использует стиль Java.
  • IntelliJ
  • Java - стиль Java.
  • JavaScript - используетСтиль ECMA.
  • NetBeans
  • .NET - использует классы в System.Text.RegularExpressions
  • Notepad ++ - PCRE
  • PCRE (C / C ++) -Библиотека с открытым исходным кодом, используемая многими сторонними языками и приложениями.(например, PHP, TCL, R и т. д.)
  • Perl - стиль Perl
  • PHP - POSIX ERE, PCRE (в многобайтовом строковом модуле PHP5 используется Oniguruma)
  • POSIX - BRE(Базовое регулярное выражение), ERE (расширенное регулярное выражение)
  • PowerShell - .Net style
  • Python - стиль Python
  • R - POSIX ERE / BRE, PCRE
  • REALbasic - PCRE
  • Ruby - Онигурума
  • Sed - специальные символы (){}[] экранируются при использовании их для функций регулярных выражений.
  • Tcl - Threeвкусы, Tcl ARE (расширенное регулярное выражение), POSIX ERE, POSIX BRE.
  • TextMate - Онигурума
  • Тера Термин - Онигурума
  • VBScript - ECMA
  • Visual Basic 6 - ECMA (при использовании COM-объекта Microsoft VBScript Regular Expressions 5.5)
  • Visual Studio - Групповые скобки {} (подробнее см. Ниже)
  • wxWidgets - Tcl ARE, POSIX BRE / ERE
  • XML-схема - XML ​​
  • XQuery & XPath - Xpath

Дополнительные ссылки.

Ответы [ 4 ]

8 голосов
/ 10 января 2011

Взгляните на Сравнение вкусов регулярных выражений на Regular-Expressions.info . Он содержит как минимум наиболее важные на сегодняшний день реализации регулярных выражений и их характеристики.

3 голосов
/ 10 января 2011

http://www.regular -expressions.info - самая близкая вещь, которую я знаю к полному списку (и даже он далеко не полный). ( Эта страница в частности.)

2 голосов
/ 21 февраля 2012

В Википедии есть список библиотек, языков и приложений, поддерживающих регулярные выражения, который включает таблицу сравнения функций:

http://en.wikipedia.org/wiki/Comparison_of_regular_expression_engines

1 голос
/ 15 апреля 2015

Я нашел этот обзор очень полезен, когда я путаюсь с различными вариантами.

...