正则表达式按字母顺序排列(不跳过字母)

时间:2019-04-09 12:07:44

标签: regex

我无法为以下条件编写正确的正则表达式:

-单词应包含字母(例如,从A到E)

-字母应按字母顺序排列,但不要在两个字母之间跳过! ,例如:ABCD是正确的单词,ACD不是因为缺少B

-它可以以字母中的任何字母开头,例如:BCD以及DE都是有效的,但是BCE并不是因为D缺失了

-不重复字母,例如:AAB无效,DEE无效

我尝试了以下逻辑: ^ A?B?C?D?E?$

但是,我可以在不允许的字母之间跳过。 我该怎么做才能使字母之间不可跳过?

1 个答案:

答案 0 :(得分:1)

没有简单的方法可以执行此操作,正则表达式不支持(x + 1)类型的计算。 但是,您可以执行以下丑陋的操作:

^(?:A|AB|ABC|ABCD|ABCDE|B|BC|BCD|BCDE|C|CD|CDE|D|DE|E)$