Регулярные выражения и языки алфавитов с подстрокой - PullRequest
1 голос
/ 09 ноября 2019

Сейчас я готовлюсь к тесту в cs и у меня проблемы с регулярными выражениями. Вот пример вопроса, который я не понимаю.

У нас есть заданный алфавит Σ = {0, 1} и L1. L1 представляет любое слово с нечетным числом 0 (нули) и ровно дважды 1 (единиц).

Проф. показал нам пример того, как должно выглядеть решение: Σ = {a, b} с L1 .

L1 представляет любое Слово, в котором подслово aa или bb .

L1 = (a ∪ b) * (aa ∪ bb) * (a ∪ b) *

спасибоза вашу помощь

1 Ответ

0 голосов
/ 10 ноября 2019

Попробуйте:

(?mx)
^
(?=0*10*10*$) # check if the word consists of only 0s and exactly two 1s
(?:..){1,}.   # check if the word length is odd
$

Демонстрация на RegEx101 . Там вы можете найти исчерпывающее объяснение этого регулярного выражения.

...