Изменения

Перейти к: навигация, поиск

Простой сопоставитель регулярных выражений

310 байт убрано, 19:13, 5 декабря 2016
Алгоритм
==Алгоритм==
Если требуется сопоставить простое регулярное выражение с текстом, то проще использовать текущий Данный алгоритм, чем использовать работает быстрее [[Недетерминированные конечные автоматы| недетерминированный конечный автоматнедетерминированного конечного автомата]], построенный построенного по [[Теорема Клини (совпадение классов автоматных и регулярных языков)| теореме Клини]], так как он прост в написаниино только для регулярных выражений, требует меньше памяти и на простых регулярных выражениях работает не сильно хуже.  Введем обозначениясостоящих из символов:
:<tex>c</tex> {{---}} один любой буквенный символ,
:<tex>\ldotp</tex> {{---}} один любой символ,
:<tex>*</tex> {{---}} предыдущий символ встречается ноль или более раз.
Данный алгоритм можно использовать Например, для регулярных выражений вида: <tex>\wedge? (c | \ldotp | c^ab* | \ldotp^*)^* \mathdollar?</tex>, очевидно, проще написать простой сопоставитель чем строить НКА.
=== Псевдокод ===
Анонимный участник

Навигация