我的json数据集中的某个类别应该限制为有限数量的值,所以我将它们放在
enum
中的列表中。有两个问题:
water
和 water*
都是有效的。value(ab)
.对于这两个问题,使用正则表达式模式是最简单的,但是可以将
enum
和pattern
结合起来吗? (我知道可以将所有可能的值放在由 pattern
分隔的 |
中,但这并不理想。)
{
"category": {
"enum": ["water", "beer", "wine", "soda([a-z]{0,2})"]
}
}
有效值为
water
、water*
、beer
、beer*
、wine
、wine*
、soda()
、soda()*
,最后两个值是两个小写字母之间的任意组合括号。
您可以将
anyOf
与pattern
一起使用。
{
"type": "string",
"anyOf": [
{ "pattern": "^water.*" },
{ "pattern": "^beer.*" },
...
]
}
``