2013-12-08 28 views
2

我試圖用正則表達式來查找這些塊。 我試圖找到顯示波紋管的代碼示例,使用正則表達式來查找包含某個詞的塊

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」。誰能幫我嗎?

+0

它是類名修復和光變量? –

回答

4

試試這個:

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

這裏的關鍵詞是[^}]*,保證了比賽不運行到下一個塊。

見這個表達式的live demo在行動,你的榜樣和非匹配的例子。

+0

正是我在找的東西!非常感謝!如果你沒有經驗,正則表達式非常混亂。 –

+0

@mats值得學習。你會驚訝有多少次你可以使用它併爲自己節省大量的代碼。 – Bohemian

+0

我知道這是一個非常晚的答覆,但我只是想感謝你鼓勵我學習正則表達式。自從我發佈這個以來,它已經有了很多幫助。謝謝! –

相關問題