我正在寻找这样的事情:1 * 2 4 3 *
但是这并没有考虑到字符串231等不同的顺序。任何想法如何使用正则表达式指定顺序?
答案 0 :(得分:1)
我不知道你对1^* 2^4 3^*
的意图是什么,但是从你的描述开始,
/^([13]*2){0,4}[13]*$/
将匹配1
,2
和3
的任意组合,但2
不超过四个。
但是,您没有指定regexp引擎,因此它可能在某些引擎中不起作用(特别是那些没有{}
重复运算符的引擎),在这种情况下,您需要将其解压缩。
编辑:看过tripleee的评论后,我终于理解了原来的尝试。无论如何,在正式的正则表达式中,你肯定需要解压缩(不仅你没有{}
,你甚至没有x?
作为(x|ε)
的简写:
(1|3)*
(2 (1|3)*
(2 (1|3)*
(2 (1|3)*
(2 (1|3)*
|ε)
|ε)
|ε)
|ε)
答案 1 :(得分:0)
如果我正确理解了您的要求,您希望允许1,2,3
的所有组合限制数字2不应超过4次。
你需要为这个正则表达式使用前瞻:
^(?!(.*?2){5,})[123]+$