Исключение слова в регулярном выражении - PullRequest
0 голосов
/ 28 ноября 2018

Так что я не на 100% уверен, что это правильное место, чтобы спросить, но стекопоток кажется, что это обычно находка для всего, что связано с компьютерными науками, поэтому мы идем.

Меня попросили произвестирегулярное выражение для всех слов в алфавите {a, b} *, которые не заканчиваются на bba.Я придумал это:

(a U b)*( (aaa) U (aab) U (baa) U (bab) U (aba) U (abb) U (bbb) )

Так что это язык, который содержит любую комбинацию as и bs, если последние три буквы НЕ bba.Я почти уверен, что это правильно и описывает данный язык.

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

(Примечание: это регулярное выражение в контексте конечных автоматов, а не регулярное выражение для сравнения слов. К сожалению, я могу найти информацию только о последнем.)

Спасибо за любые ивсем помочь :)

1 Ответ

0 голосов
/ 28 ноября 2018

Оказывается, это дубликат многих вопросов по информатике:

https://cs.stackexchange.com/questions/66513/write-a-regex-to-match-string-that-does-not-contain-a-certain-pattern

...