Какой Алгоритм Регулярного выражения JavaScript использует для Regex?

Посмотрите директивы в разделе «Настройка». Те вещи, которые вы находите, это VersionInfoDescription и VersionInfoProductName.

Вы должны вставить ниже в свой код.

[Setup]
...
VersionInfoDescription="Put here to show the File Description."
VersionInfoProductName="Put here to show the Product Name."
...
15
задан leeand00 7 April 2009 в 20:58
поделиться

3 ответа

Описание языка ECMA JavaScript не налагает требование для конкретной реализации регулярных выражений, так, чтобы часть вопроса не была правильно построена. Вы действительно задаетесь вопросом о конкретной реализации в конкретном браузере.

Причина Perl/Python и т.д. использует более медленный алгоритм, тем не менее, состоит в том, что regex определенный язык не является действительно регулярными выражениями. Реальное регулярное выражение может быть выражено как конечный автомат, но язык regex является свободным контекстом. Вот почему вид состоит в том, чтобы просто назвать это "regex" вместо того, чтобы говорить о регулярных выражениях.

Обновление

Да, на самом деле JavaScript regex не доволен свободный постоянный клиент. Рассмотрите использование синтаксиса '{n, m}', то есть, соответствия от n до m приняли regexs. Позвольте d различие d = | n-m |. Средство синтаксиса там существует строка uxdw, который приемлем, но строка uxk> собственный вес, который не является. Это следует с помощью насосной леммы для регулярных языков, что это не регулярный язык.

(что-то. Thinko исправлен.)

7
ответ дан 1 December 2019 в 04:10
поделиться

Хотя стандарт ECMA не определяет алгоритм, который должна использовать реализация ECMAScript, тот факт, что стандарт предписывает регулярность ECMAScript выражения должны поддерживать обратные ссылки (\ 1, \ 2 и т. д.), исключающие реализации DFA и "Thompson NFA".

7
ответ дан 1 December 2019 в 04:10
поделиться

Perl использует мемоизованный рекурсивный поиск отслеживания в обратном порядке и, с некоторых улучшений 5,10, больше не аварийно завершается на perl -e '("a" x 100000) =~ /^(ab?)*$/;'. В недавних тестах я выполнил на поле OS X, Perl 5.10 превзошел по характеристикам awk, даже в случаях, где awkалгоритм, как предполагалось, был лучше.

3
ответ дан 1 December 2019 в 04:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: