что означает регулярное выражение в регулярном выражении / "регулярное выражение"? - PullRequest
9 голосов
/ 26 января 2011

Что означает «регулярный» в фразе «регулярное выражение»?

Я слышал, что когда-то регулярные выражения были регулярными, но не более

Ответы [ 4 ]

11 голосов
/ 26 января 2011

Регулярное выражение регулярное исходит из того, что оно соответствует регулярному языку .

Концепция регулярных выражений, используемая в теории формального языка , весьма отличается от того, что механизмы, подобные PCRE , называют регулярными выражениями. PCRE и другие подобные движки имеют такие функции, как lookahead , условные выражения и рекурсия , которые позволяют им соответствовать нестандартным языкам.

4 голосов
/ 26 января 2011

Это происходит от обычного языка. Это часть теории формального языка. Проверьте иерархию Хомского для других формальных языков.

1 голос
/ 26 января 2011

I думаю, происходит от термина для класса грамматик, который описывают регулярные выражения: регулярные грамматики (или "обычные" языки). Откуда этот термин , вероятно, ответит поездка в Википедию.

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

1 голос
/ 26 января 2011

Это означает, что это обычный язык.

Регулярные выражения по-прежнему популярны.Некоторые люди недовольны ими, но они остаются быстрым и простым (если вы знаете, как их использовать) способом сопоставления определенных типов строк.Альтернативой часто являются несколько хороших строк кода, проходящих по строкам и извлекающих нужные вам биты, что намного неприятнее!

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

Они точно не мертвы.

...