首页 > 解决方案 > 按顺序显示字母字符的正则表达式(不跳过字母)

问题描述

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

-Word 应包含字母表中的字母,例如从 A 到 E

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

- 它可以以字母表中的任何字母开头,例如:BCD 和 DE 一样有效,但 BCE 又不是因为 D 缺失

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

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

但是有了这个,我可以在不允许的字母之间跳过。我可以尝试在不可跳过的字母之间做什么?

标签: regex

解决方案


没有简单的方法可以做到这一点,正则表达式不支持 (x+1) 类型的计算。但是,你可以做这个丑陋的事情:

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

推荐阅读