Регулярные выражения: символ не может отображаться более 4 раз в последовательности - PullRequest
0 голосов
/ 13 апреля 2020

Я создаю регулярное выражение, в котором строка ДОЛЖНА начинаться с E, может иметь неограниченное число E (E +) и ДОЛЖНА заканчиваться C ([C]).

Тогда B может НЕОБЯЗАТЕЛЬНО находиться между E и C, но только парами (B {2}?).

Теперь это часть, на которой я застрял. В строке не может быть более 4-х символов. Я пытаюсь использовать S {0,4}.

Наконец, каждый P или последовательность P в серии ДОЛЖНЫ сопровождаться D.

Я много экспериментировал, но не могу понять, P и D.

1 Ответ

1 голос
/ 13 апреля 2020

Вы можете использовать

^E+(?!(?:[^P\n]*P){5})(?:B{2}|P+D)*C$
  • (?!(?:[^P\n]*P){5}) - Убедитесь, что в этой строке не более 5 Ps. Делайте это в отрицательном прогнозе , вместо того, чтобы потреблять символы, чтобы учесть больше логики c

  • (?:B{2}|P+D)* - Каждая подстрока в середине либо нуждается быть парой B или несколькими P, за которыми следует D

https://regex101.com/r/2tg7Mr/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...