Есть хорошее решение здесь для сопоставления IP с маской, например 192.168.0.1/24
.Я добавляю предложение от https://regex101.com/, чтобы избежать косой черты, и это выглядит так:
((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}\/(?:\d|[12]\d|3[01])$
Это определенно работает на regex101.
Он должен находиться внутри файла json (файл jsonschema), но, похоже, содержит что-то незаконное.Не могу понять, что это такое, посмотрел , , , , , , а также попытался использовать ujson вместо json (в python), как это было предложено здесь , но ничего не работает.
следующий фрагмент jsonschema, который содержит это регулярное выражение:
{
"comment": "ipv4 with a mask",
"data": {
"network": {
}
},
"schema": {
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ipv4 with a mask",
"type": "object",
"properties": {
"subnet": {
"title": "subnet",
"type": "string",
"pattern": "((^|\.)((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]?\d))){4}\/(?:\d|[12]\d|3[01])$"
}
}
}
}
... к сожалению, даже не будет анализироваться.Python говорит:
JSONDecodeError: Invalid \escape: line 16 column 33 (char 380)
Я использовал библиотеку fastjsonschema , чтобы проверить эти вещи, но не могу даже проанализировать json и получить это далеко.
Кто-нибудь знает, как это исправить, как-то заставить этот кусок регулярного выражения работать в jsonschema?