正则表达式

时间:2014-07-29 08:23:21

标签: regex

我有一个案例,我必须在json字符串中只允许一些特定的单词集,例如:

  1. {"name":"prashant","id":123,"address":"e-56 first floor"} This is valid\n
  2. {"name":"prashant","address":"e-56 first floor"} This is valid\n
  3. {"id":123,"address":"e-56 first floor"} This is valid\n
  4. {"address":"e-56 first floor"} This is valid\n
  5. 给定单词(name|id|address)的任何排列组合都可以 现在无效

    1. {"name":"prashant","id":123,"address":"e-56 first floor" ,"phno":"9999999999"} 无效
    2. 如果使用了不属于给定列表的任何单词,则整个字符串将无效,即使其中包含3个有效的字符串也将无效。

      任何人都可以为我提供REGEX。 提前致谢

2 个答案:

答案 0 :(得分:0)

我建议将数据解析为JSON,有许多语言库。解析JSON后,您只需检查是否已设置所有必填字段。

答案 1 :(得分:0)

这应足以验证字典中的每个键是否有效。它不会发现一些畸形的json。

{("(name|id|address)":[^,]*,?)+}

以下内容不允许格式错误的json

{(("(name|address)":"[^"]*",)|("id":\d+,))*(("(name|address)":"[^"]*")|("id":\d+))}