regex 如何在JSON模式中禁用句点

zsohkypk  于 2023-03-24  发布在  其他
关注(0)|答案(2)|浏览(119)

我想在JSON模式模式中为以下禁用字符集添加句点:

"pattern": "[^\"{}:, \t]+"

我的第一个想法是尝试:

"pattern": "[^\.\"{}:, \t]+"

但是这产生模式的解析错误。
我的下一个想法是尝试:

"pattern": "[^\\.\"{}:, \t]+"

但是当我尝试验证我的YAML文件时,它没有所需的属性。
我使用ajv作为我的JSON模式验证工具,我正在验证一个YAML文件。

nom7f22z

nom7f22z1#

.不是字符类中的特殊字符,只有^-]是特殊字符,必须在字符类中转义。
^-甚至可以在字符类中使用而不转义,如果它们没有被放置在具有特殊含义的位置。
您的成功尝试在字符类中添加了.\
只需在字符类中添加.(不是在^之前),就可以了:

"pattern": "[^\"{}:., \t]+"
vlju58qv

vlju58qv2#

正如axiac和Diego D所指出的,句点不需要在字符类中转义。然而,除了这个问题之外,模式没有匹配任何东西,因为它缺少前缀^和后缀$。最终的模式是:

"pattern": "^[^\"{}:., \t]+$"

相关问题