我的问题与Regular expression to match numbers between 1-5000不相似,因为我还有其他要检查的东西(没有范围,领先,没有前导零等)。
我在输入检查中有以下RegEx:
^[0-9]{1,4}$
这适用于长度为1-4的数字。
不幸的是我必须只允许这些组合:
我需要什么RegEx?
答案 0 :(得分:1)
让我们为您的条件定义子模式:
一位数字1-9(无前导零) - 使用
[1-9]
或两位数字10-30(无前导零) - 使用[12][0-9]|30
或四位数字0001-9999(带前导零) - 使用[0-9]{4}
因此,整个模式应该根据应该锚定和分组的替代方案构建(以便将锚点应用于组)
^([1-9]|[12][0-9]|30|[0-9]{4})$
请参阅regex demo