Вопросы с тегом «regular-expressions»

Вопросы о регулярных выражениях, формализм для описания регулярных языков.

115
Как преобразовать конечные автоматы в регулярные выражения?

Преобразование регулярных выражений в (минимальный) NFA, который принимает тот же язык, легко с помощью стандартных алгоритмов, например , алгоритма Томпсона . Другое направление кажется более утомительным, и иногда получающиеся выражения являются грязными. Какие существуют алгоритмы для...

27
Является ли regex golf NP-Complete?

Как видно в этой недавней полосе XKCD и в этом недавнем сообщении в блогеПо словам Питера Норвига (история Слэшдота, в которой рассказывается о последнем), «регулярное выражение в гольфе» (которое лучше назвать проблемой разделения регулярных выражений) - это задача определения кратчайшего из...

26
Как смоделировать обратные ссылки, прогнозирование и просмотр в конечных автоматах?

Этот вопрос был перенесен из переполнения стека, поскольку на него можно ответить в разделе «Информатика в стеке». Мигрировал 7 лет назад . Я создал лексер и анализатор простого регулярного выражения, чтобы взять регулярное выражение и сгенерировать его дерево анализа. Создание...

25
«Плотные» регулярные выражения порождают

Вот гипотеза для регулярных выражений: Для регулярного выражения пусть длина | R | быть количеством символов в нем, игнорируя скобки и операторы. Например | 0 ∪ 1 | = | ( 0 ∪ 1 ) ∗ | = 2ррR| R ||р||R|| 0∪1 | = | (0∪1 )*| =2|0∪1|знак равно|(0∪1)*|знак равно2|0 \cup 1| = |(0 \cup 1)^*| = 2 Гипотеза:...

25
Какова связь между языками программирования, регулярными выражениями и формальными языками

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

23
Какие языки распознают Perl-совместимые регулярные выражения?

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

18
Регулярные выражения с обратными ссылками над унарным алфавитом

Установка: регулярные выражения с обратными ссылками одинарный язык (1-символьный алфавит) В этом параметре разрешима следующая проблема: Если задано регулярное выражение с обратными ссылками, определяет ли оно регулярный язык? Например, (aa+)\1определяет обычный язык, а (aa+)\1+не -. Можем ли мы...

16
Являются ли регулярные выражения

Если у меня есть грамматика типа 3, она может быть представлена ​​в автомате (без каких-либо операций со стеком), поэтому я могу представлять регулярные выражения с использованием контекстно-свободных языков. Но могу ли я знать, что грамматика типа 3 - это , L L ( 1 ) , S L R ( 1 ) и т. Д. Без...

16
Для каждого «злого» регулярного выражения существует ли не злая альтернатива или дьявол в грамматике?

По-видимому, атаки ReDos используют характеристики некоторых (в противном случае полезных) регулярных выражений ... по сути, вызывая взрыв возможных путей через граф, определенный NFA. Можно ли избежать таких проблем, написав эквивалентное «не злое» регулярное выражение? Если нет (таким образом,...

13
Может ли POSIX BRE выразить все обычные языки?

Похоже, что «Основные регулярные выражения», как определено в POSIX.1-2008 , не поддерживают чередование a|b(хотя некоторые реализации grep распознают экранированную версию \|). Поскольку регулярные языки по определению замкнуты относительно объединения, означает ли это, что POSIX BRE обладает...

13
Почему в регулярных выражениях нет перестановок? (Даже если обычные языки, кажется, могут это сделать)

Проблема Нет простого способа получить перестановку с помощью регулярного выражения. Перестановка: Получение слово ( «ААБК») в другом порядке, без изменения числа или рода писем.w=x1…xnw=x1…xnw=x_1…x_n Regex: Регулярное выражение. Для подтверждения: «Перестановки регулярных выражений без...

13
Являются ли регулярные выражения кроссвордами NP-сложными?

Я дурачился на днях на этом сайте: http://regexcrossword.com/, и это заставило меня задуматься о том, как лучше всего это решить. Можете ли вы решить следующую проблему за полиномиальное время или это NP-сложный? Учитывая сетку NxM с N регулярными выражениями для столбцов и M для строк, найдите...

13
Почему звездный оператор Клини также называется оператором замыкания Клини?

Я обнаружил, что если я не понимаю этимологию термина «cs / программирования», это обычно означает, что я пропустил или неправильно понял какую-то важную базовую концепцию. Я не понимаю, почему звезду Клини также называют закрытием Клини. Связано ли это с замыканиями в программировании, функцией со...

12
Нужно ли языку регулярных выражений автомат для его анализа?

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

12
Как создать DFA из регулярного выражения без использования NFA?

Цель состоит в том, чтобы создать DFA из регулярного выражения, и использование «Regular exp> NFA> DFA преобразование» не вариант. Как это сделать? Я задал этот вопрос нашему профессору, но он сказал мне, что мы можем использовать интуицию, и любезно отказался дать какие-либо объяснения....

12
Разница между регулярным выражением и грамматикой в ​​автоматах

Я новичок в автоматах, и я получил краткое введение в регулярные выражения только вчера. Я прочитал различные правила для определения регулярного выражения. Но я не могу отличить регулярные выражения от грамматики языка (меня не учили грамматике регулярных выражений). Я понимаю, что грамматика...

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

Я думал, что все регулярные языки могут быть выражены с помощью регулярных выражений (если язык регулярный, он может быть выражен с помощью регулярных выражений), но мне сказали, что для этого вам нужны все три регулярные операции (конкатенация, объединение и звездочка) держать. Например, мне...

11
Предлагая уточнения типов

На работе мне было поручено вывести некоторую информацию о типах динамического языка. Я переписываю последовательности операторов во вложенные letвыражения, например так: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then {...

11
Алгоритм определения эквивалентности двух регулярных выражений

Имеется ли два произвольных регулярных выражения, существует ли «эффективный» алгоритм для определения того, соответствуют ли они одному и тому же набору строк? В более общем смысле, можем ли мы вычислить размер пересечения двух наборов совпадений? Какие алгоритмы существуют для этого и в каком...

11
Как преобразовать NFA с перекрывающимися циклами в регулярное выражение?

Если я правильно понимаю, NFA обладают той же выразительной силой, что и регулярные выражения. Зачастую считывание эквивалентных регулярных выражений из NFA легко: вы переводите циклы в звезды, соединения в качестве альтернатив и так далее. Но что делать в этом случае: [ источник ] Перекрывающиеся...