Какое простейшее регулярное выражение для исключения шаблона повторения? - PullRequest
0 голосов
/ 13 марта 2020

Я пытался написать регулярное выражение для набора строк, который не содержит , содержит 000, где алфавит равен {0,1}. Я ищу решение с наименьшим количеством операторов.

Я пробовал:

(!+0+00)(1(!+0+00))*

Где :

  • * - это звезда Клини

  • + - оператор объединения

  • ! используется для представления пустой строки.

Я не уверен, правильно ли это или нет.

Я не знаю, существуют ли другие операторы, такие как номер события et c.

1 Ответ

0 голосов
/ 02 апреля 2020

Ответ прост:

(!|0|00)(11*(!|0|00))*

Поскольку разрешено любое количество единиц, и между этими единицами мы можем иметь не более двух нулей. По крайней мере, если я правильно понял, что это был язык, в котором ни один элемент не содержит подстроки 000.

...