我有以下正则表达式..
(^\[[.*][[0-9a-zA-Z][0-9a-zA-Z]]*[.*]\])
这意味着只匹配非空的JSON编码字符串,如此...
[ { object: HELLO } ]
同时排除“空”JSON响应,例如......
[ ]
这些回复可能有也可能没有空格。
我的正则表达式似乎适用于某些情况,即..
[ ] <---- does not match.
[ HELLO ] <---- matches.
[ { HELLO } ] <---- does not match.
我并不太关心JSON的实际有效性,而是确保[]
检查它的最佳方法是什么?
答案 0 :(得分:1)
您的正则表达式不正确,因为您对分组和字符类都使用[...]
。
(...)
。[...]
。表达式[.*]
是一个字符类。它并不意味着你可能想要的“匹配任何字符的零或更多”。这意味着“只匹配一个点或星号”。
修复这些错误后,您的正则表达式也可以简化:
^\[.*[0-9a-zA-Z]+.*\]$
如果JSON正确,不验证。它只检查字符串是否满足以下条件:
[
开始。]
结束。答案 1 :(得分:0)
为什么不检查你是否有你不想要的条件?
^\[\s*\]$
应检查您是否有空的JSON响应
即
[
]