【发布时间】:2020-05-05 14:13:02
【问题描述】:
我正在尝试匹配只能包含 UTF-8 的 JSON 文件值,否则会显示错误。 我在 python 中编写了脚本来使用 JSON 模式验证 JSON 文件。 我在 json 模式中使用了以下模式,但没有捕获所有情况:
"name":{
"type":"string",
"pattern":"^[a-zA-Z0-9!@#$&*_~:?()\\[\\]\\-` '.+,/\"{} \\u0080-\u9fff]*$"
}
例如:
如果 name: '힙합성애자' 显示错误,但应该通过验证。 那么当 name: John"☮" Robert 时,它通过了验证,但它应该是失败的。
我的正则表达式应该是什么才能通过此类 UTF-8 值的验证?
【问题讨论】:
-
匹配“UTF-8”的模式是
.*。是的,这意味着任何东西。通常你正在验证解析 JSON 的结果,此时字符编码是无关紧要的。如果它不是有效的 UTF-8,它将无法通过解析阶段。 -
"힙합성애자" 和 "☮" 都是 Unicode。十六进制的 UTF-8 表示分别是“ed 9e 99 ed 95 a9 ec 84 b1 ec 95 a0 ec 9e 90 0a”和“e2 98 ae 0a”。您是否正在寻找特定的字符平面,例如可打印字符?或者过滤掉符号/表情符号?
标签: python python-3.x jsonschema json-schema-validator python-jsonschema