Регулярное выражение языка {ab}, которое содержит строку нечетной длины и должно содержать по крайней мере один 'b' в нем - PullRequest
0 голосов
/ 03 марта 2019

Я пробовал следующее решение, но оно может не охватывать все строки

b (aa + ab + ba + bb) * + (aa + ab + ba + bb) * b

здесь + означает операцию ИЛИ и * означает повторение.

Может ли кто-то отладить вышеприведенное регулярное выражение?

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

RE = (a + b) ((a + b) (a + b)) * b (a + b) ((a + b) (a + b)) * + ((a + b) (a + b)) * b ((a + b) (a + b)) *

Я надеюсь, что он охватит все строки

0 голосов
/ 03 марта 2019

проверьте это ..

b((a+b)(a+b))*

это приводит к генерации строк с минимальной длиной 1, то есть нечетным согласно вашему требованию, также содержащим (b), если вы берете закрытие один раз

длянесколько нечетных длин замыкаются несколько раз

...