是否可以定义一次regex并重用它?我有几个非常复杂的正则表达式,我想将它们用作模式,用于模式中各种不同对象的大量属性的值。复制粘贴这个看起来像是自找麻烦,但我似乎找不到合适的重用示例。
删去说明我想做什么的模式。
{
"$schema": "http://json-schema.org/draft-04/schema#",
"patterns": {
"fqdn_or_ipaddress": "(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\\.)+[a-zA-Z]{2,63}$)||(((?:^[0-9])(?:(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2}))(?![0-9])$)|(^\\*$))",
},
"properties": {
"server_hostname" : {
"type":"string",
"pattern": {"#ref", "#/patterns/address"},
},
"proxy_hostname" : {
"type":"string",
"pattern": {"#ref", "#/patterns/address"},
}
}
}
在http://www.jsonschemavalidator.net/中不进行验证,因为“pattern”不是字符串。这是一个重复使用的洞吗。我看过patternProperties,但这似乎解决了完全不同的用例。
您只能$ref
架构。你需要做这样的事情。
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"server_hostname" : {
"$ref": "#/definitions/fqdn_or_ipaddress",
"description": "The server hostname"
},
"proxy_hostname" : {
"allOf": [{ "$ref": "#/definitions/fqdn_or_ipaddress" }],
"description": "The proxy hostname"
}
},
"definitions": {
"fqdn_or_ipaddress": {
"type": "string",
"pattern": "(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)\\.)+[a-zA-Z]{2,63}$)||(((?:^[0-9])(?:(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2}))(?![0-9])$)|(^\\*$))"
}
}
}
编辑
我添加了两个如何从$ref
扩展的示例。在第一个中,您只需添加描述
。它将被忽略,但不是错误。由于description
只是一个元数据关键字,这应该不成问题。
什么类型的价值适合于此?值应该只是布尔值(根据主模式),或者可以是布尔值或字符串(在正确的地方引用基资源)。我使用的JSON验证器不允许值为布尔值以外的任何值,我在JSON规范中搜索了很多,但没有关于它的信息。
我试图使用另一个JSON模式来验证JSON模式。 要验证的JSON模式示例:https://jsonschema.net/home 验证上述模式的验证模式参考:https://github.com/ajv-validator/ajv/blob/master/lib/refs/json-schema-draft-07.json 从上面的中,如果我删除,我的JSON将变得无效。 我有什么方法可以定义根
问题内容: 尝试编写使用RegEx验证项目值的JSON模式。 有一个名为 progBinaryName 的项目,该项目的值应预适应此RegEx字符串。 找不到任何实际解释JSON模式中RegEx用法的教程或示例。 任何帮助/信息将不胜感激! 感谢:D JSON架构 错误: 警告!更好地检查您的JSON。 实例不是必需的类型-http://json-schema.org/draft-03/hyper
尝试编写一个JSON模式,该模式使用RegEx来验证项的值。 找不到任何实际解释在JSON模式中使用RegEx的教程或示例。 任何帮助/信息将非常感谢! 谢谢,D 模式是有效的JSON,但不是有效的模式。 验证结果:失败
我对文档模式的定义如下:
我会用Python编写 方法解析顺序决定了应该首先检查哪个父类的方法/属性,所以我可以判断Pet.age是NewPet.age还是OldPet.age。 那幺如果我让Pet同时从NewPet和OldPet继承,其中name属性在两个模式中都定义了,每个模式中都有不同的值,会怎么样?宠物名是什么? 老宠物会优先吗?新宠物?是否未定义/无效?它是应用程序定义的吗? 我在《大摇大摆的编辑》中试过这个。显