使用正则表达式查找包含某个单词的块

时间:2013-12-08 05:08:54

标签: regex

我正在尝试使用正则表达式来查找这些块。 我试图找到的代码示例如下所示,

entity //This is what I want to select
{
    "id" "2"
    "classname" "light"   //This is what it should contain
    "_light" "255 255 255 200"
    "_lightHDR" "-1 -1 -1 1"
    "_lightscaleHDR" "1"
    "_quadratic_attn" "1"
    "origin" "-128 0 -128"
    editor
    {
        "color" "220 30 220"
        "visgroupshown" "1"
        "visgroupautoshown" "1"
        "logicalpos" "[0 0]"
    }
}

我怎样才能找到这个区块? 不应选择不包含“classname”“light”的块。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

试试这个:

entity\s*\{[^}]*"classname" "light"[^}]*\}\s*\}

此处的关键术语是[^}]*,可确保匹配不会延伸到下一个块。

使用您的示例和不匹配的示例查看此正则表达式的live demo