匹配正则表达式中的空对象

时间:2017-05-02 22:06:36

标签: regex

我正在尝试匹配数组中具有值为null

的属性的所有对象
[
  {
    id: 1,
    name: "None",
    grade: 'A'
  },
  {              <== match here
    id: 2,     
    name: null, 
    grade: 'C'
  },             <== to here
  {
    id: 3,
    name: "None",
    grade: 'B'
  },
]

我目前有以下正则表达式语句尝试匹配之间的周围文本,但是当我在多行匹配之间插入'null'时它将不匹配

\{((.*\n.*)+null(.*\n.*)+)\}

有没有更简单的方法来实现它?

1 个答案:

答案 0 :(得分:2)

\{[^{]*null[^}]*\}

<强>解释

  • \{:我们想要第一个开头括号
  • [^{]*:假设它是一个扁平物体,我们需要每个角色都不是另一个开口括号
  • null:这是我们之后的神奇文字
  • [^}]*:我们需要对象的其余部分,因此请查找不是结束括号的所有字符
  • \}:匹配右括号

我知道这不是很强大,但如果您的数据是严格格式化的,那么应该这样做。

看到您的尝试后,您可能需要查看character class