所以我想允许长度为8或12的A-Z。
我试过了:
^[a-z]{8|12}$
但这不起作用。什么是正确的解决方案? (不重复)
答案 0 :(得分:7)
你需要使用这样的交替:
^([a-z]{8}|[a-z]{12})$
没有其他正则表达式解决方案不涉及重复[a-z]
部分。如果您使用分组构造,至少不必重复^
和$
锚点。
或者,您可以使用可选组,但只有在模式为静态时才有效。实际上,差异是疏忽的(在regexhero测试):
答案 1 :(得分:1)
作为"正好8或正好12"的替代品。模式的类型,这里是" 8,可能还有4个"类型模式:
^[a-z]{8}([a-z]{4})?$
答案 2 :(得分:1)
我建议此解决方案:
^([a-z]{4}){2,3}$
这意味着长度为4的组[a-z]必须匹配2(总长度:8)或3(总长度:12)倍。这样,允许的字符集只需定义一次。
答案 3 :(得分:0)
试试这个
^[a-z]{8}$|^[a-z]{12}$
多重长度字段选项不在那里,您必须单独提供它们,包括正则表达式