Regex для символов алфавита в порядке (без пропуска букв) - PullRequest
0 голосов
/ 09 апреля 2019

У меня проблемы с написанием правильного регулярного выражения для следующих условий:

- Слово должно содержать буквы алфавита, например, от A до E

- Буквы должны быть в алфавитном порядке, но без пропуска между двумя буквами! Например, ABCD - правильное слово, ACD - не потому, что B отсутствует

-Он может начинаться с любой буквы алфавита, например: BCD действителен, также как и DE, но, опять же, BCE - не потому, что D отсутствует

-Нет повторения букв, например: AAB недействителен, DEE недействителен

Я пробовал со следующей логикой: ^ A? B? C? D? E? $

Но при этом я могу пропускать буквы, что запрещено. Что я могу попытаться сделать между буквами, которые нельзя пропустить?

1 Ответ

1 голос
/ 09 апреля 2019

Нет простого способа сделать это, регулярное выражение не поддерживает (x + 1) тип вычислений. Тем не менее, вы могли бы сделать эту уродливую вещь:

^(?:A|AB|ABC|ABCD|ABCDE|B|BC|BCD|BCDE|C|CD|CDE|D|DE|E)$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...